<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Doxygen: pcl::outofcore::OutofcoreOctreeBase&lt; ContainerT, PointT &gt; 模板类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Doxygen
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classpcl_1_1outofcore_1_1_outofcore_octree_base.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-types">Public 类型</a> &#124;
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pro-methods">Protected 成员函数</a> &#124;
<a href="#pro-attribs">Protected 属性</a> &#124;
<a href="#pro-static-attribs">静态 Protected 属性</a> &#124;
<a href="#pri-methods">Private 成员函数</a> &#124;
<a href="#pri-attribs">Private 属性</a> &#124;
<a href="#friends">友元</a> &#124;
<a href="classpcl_1_1outofcore_1_1_outofcore_octree_base-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">pcl::outofcore::OutofcoreOctreeBase&lt; ContainerT, PointT &gt; 模板类 参考</div>  </div>
</div><!--header-->
<div class="contents">

<p>This code defines the octree used for point storage at Urban Robotics.  
 <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#details">更多...</a></p>

<p><code>#include &lt;<a class="el" href="outofcore_2include_2pcl_2outofcore_2octree__base_8h_source.html">octree_base.h</a>&gt;</code></p>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
<tr class="memitem:a25c3c385514c3d6f278d37f759b68969"><td class="memItemLeft" align="right" valign="top"><a id="a25c3c385514c3d6f278d37f759b68969"></a>
typedef <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">OutofcoreOctreeBase</a>&lt; <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_disk_container.html">OutofcoreOctreeDiskContainer</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>octree_disk</b></td></tr>
<tr class="separator:a25c3c385514c3d6f278d37f759b68969"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a570da383e8988a0f776a13f0a2f2dcbd"><td class="memItemLeft" align="right" valign="top"><a id="a570da383e8988a0f776a13f0a2f2dcbd"></a>
typedef <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">OutofcoreOctreeBaseNode</a>&lt; <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_disk_container.html">OutofcoreOctreeDiskContainer</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>octree_disk_node</b></td></tr>
<tr class="separator:a570da383e8988a0f776a13f0a2f2dcbd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1af87b4e33e09234bad67ee91d79e09c"><td class="memItemLeft" align="right" valign="top"><a id="a1af87b4e33e09234bad67ee91d79e09c"></a>
typedef <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">OutofcoreOctreeBase</a>&lt; <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_ram_container.html">OutofcoreOctreeRamContainer</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>octree_ram</b></td></tr>
<tr class="separator:a1af87b4e33e09234bad67ee91d79e09c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aae018bf8da94c302c4a594897f099866"><td class="memItemLeft" align="right" valign="top"><a id="aae018bf8da94c302c4a594897f099866"></a>
typedef <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">OutofcoreOctreeBaseNode</a>&lt; <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_ram_container.html">OutofcoreOctreeRamContainer</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>octree_ram_node</b></td></tr>
<tr class="separator:aae018bf8da94c302c4a594897f099866"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3b636d548d596605522636b7be64ebcc"><td class="memItemLeft" align="right" valign="top"><a id="a3b636d548d596605522636b7be64ebcc"></a>
typedef <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">OutofcoreOctreeBaseNode</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>OutofcoreNodeType</b></td></tr>
<tr class="separator:a3b636d548d596605522636b7be64ebcc"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5f3ec3ccc0883f01141d503f292383dd"><td class="memItemLeft" align="right" valign="top"><a id="a5f3ec3ccc0883f01141d503f292383dd"></a>
typedef <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">OutofcoreOctreeBaseNode</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>BranchNode</b></td></tr>
<tr class="separator:a5f3ec3ccc0883f01141d503f292383dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acfbbad7b433384597ee741364185e16a"><td class="memItemLeft" align="right" valign="top"><a id="acfbbad7b433384597ee741364185e16a"></a>
typedef <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">OutofcoreOctreeBaseNode</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>LeafNode</b></td></tr>
<tr class="separator:acfbbad7b433384597ee741364185e16a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab5d8e0c38eeaa3ea4215274bad9e38cb"><td class="memItemLeft" align="right" valign="top"><a id="ab5d8e0c38eeaa3ea4215274bad9e38cb"></a>
typedef <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_depth_first_iterator.html">OutofcoreDepthFirstIterator</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>, ContainerT &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Iterator</b></td></tr>
<tr class="separator:ab5d8e0c38eeaa3ea4215274bad9e38cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adeece5679f483cd3a1caf2013d5b9202"><td class="memItemLeft" align="right" valign="top"><a id="adeece5679f483cd3a1caf2013d5b9202"></a>
typedef const <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_depth_first_iterator.html">OutofcoreDepthFirstIterator</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>, ContainerT &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>ConstIterator</b></td></tr>
<tr class="separator:adeece5679f483cd3a1caf2013d5b9202"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af13d93d2a84885482862a869de9b0b54"><td class="memItemLeft" align="right" valign="top"><a id="af13d93d2a84885482862a869de9b0b54"></a>
typedef <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_breadth_first_iterator.html">OutofcoreBreadthFirstIterator</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>, ContainerT &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>BreadthFirstIterator</b></td></tr>
<tr class="separator:af13d93d2a84885482862a869de9b0b54"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0de36ae1210a465f7c3464bea1500c77"><td class="memItemLeft" align="right" valign="top"><a id="a0de36ae1210a465f7c3464bea1500c77"></a>
typedef const <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_breadth_first_iterator.html">OutofcoreBreadthFirstIterator</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>, ContainerT &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>BreadthFirstConstIterator</b></td></tr>
<tr class="separator:a0de36ae1210a465f7c3464bea1500c77"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3303a487047a14f3bb768fdb877a5cad"><td class="memItemLeft" align="right" valign="top"><a id="a3303a487047a14f3bb768fdb877a5cad"></a>
typedef <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_depth_first_iterator.html">OutofcoreDepthFirstIterator</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>, ContainerT &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>DepthFirstIterator</b></td></tr>
<tr class="separator:a3303a487047a14f3bb768fdb877a5cad"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5566cc367895a8ebb4bba5830187cb0b"><td class="memItemLeft" align="right" valign="top"><a id="a5566cc367895a8ebb4bba5830187cb0b"></a>
typedef const <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_depth_first_iterator.html">OutofcoreDepthFirstIterator</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>, ContainerT &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>DepthFirstConstIterator</b></td></tr>
<tr class="separator:a5566cc367895a8ebb4bba5830187cb0b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1dc51ad22b6b95bb1e175f1be84beee2"><td class="memItemLeft" align="right" valign="top"><a id="a1dc51ad22b6b95bb1e175f1be84beee2"></a>
typedef boost::shared_ptr&lt; <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>Ptr</b></td></tr>
<tr class="separator:a1dc51ad22b6b95bb1e175f1be84beee2"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2262d5b82dcbf37ccc2efe596d69b3a1"><td class="memItemLeft" align="right" valign="top"><a id="a2262d5b82dcbf37ccc2efe596d69b3a1"></a>
typedef boost::shared_ptr&lt; const <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>ConstPtr</b></td></tr>
<tr class="separator:a2262d5b82dcbf37ccc2efe596d69b3a1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6b213ddfb2d24cdc89e95cbd924d2553"><td class="memItemLeft" align="right" valign="top"><a id="a6b213ddfb2d24cdc89e95cbd924d2553"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloud</b></td></tr>
<tr class="separator:a6b213ddfb2d24cdc89e95cbd924d2553"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a86e0efd7f3ee372b8ccf7ad16eea60c6"><td class="memItemLeft" align="right" valign="top"><a id="a86e0efd7f3ee372b8ccf7ad16eea60c6"></a>
typedef boost::shared_ptr&lt; std::vector&lt; int &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>IndicesPtr</b></td></tr>
<tr class="separator:a86e0efd7f3ee372b8ccf7ad16eea60c6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a806377ca5d89ac8dd0c547c9a0858a"><td class="memItemLeft" align="right" valign="top"><a id="a7a806377ca5d89ac8dd0c547c9a0858a"></a>
typedef boost::shared_ptr&lt; const std::vector&lt; int &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>IndicesConstPtr</b></td></tr>
<tr class="separator:a7a806377ca5d89ac8dd0c547c9a0858a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ade3d844261c454c7e85807439caf0703"><td class="memItemLeft" align="right" valign="top"><a id="ade3d844261c454c7e85807439caf0703"></a>
typedef boost::shared_ptr&lt; <a class="el" href="classpcl_1_1_point_cloud.html">PointCloud</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudPtr</b></td></tr>
<tr class="separator:ade3d844261c454c7e85807439caf0703"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad14eec20e34a0a881e401407717d1879"><td class="memItemLeft" align="right" valign="top"><a id="ad14eec20e34a0a881e401407717d1879"></a>
typedef boost::shared_ptr&lt; const <a class="el" href="classpcl_1_1_point_cloud.html">PointCloud</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudConstPtr</b></td></tr>
<tr class="separator:ad14eec20e34a0a881e401407717d1879"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2d30b3e45d167444e3a67a5f3a9d4c10"><td class="memItemLeft" align="right" valign="top"><a id="a2d30b3e45d167444e3a67a5f3a9d4c10"></a>
typedef std::vector&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a>, Eigen::aligned_allocator&lt; <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>AlignedPointTVector</b></td></tr>
<tr class="separator:a2d30b3e45d167444e3a67a5f3a9d4c10"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:a5179d99711863596f23e95f6fb5d8e43"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a5179d99711863596f23e95f6fb5d8e43">OutofcoreOctreeBase</a> (const boost::filesystem::path &amp;root_node_name, const bool load_all)</td></tr>
<tr class="memdesc:a5179d99711863596f23e95f6fb5d8e43"><td class="mdescLeft">&#160;</td><td class="mdescRight">Load an existing tree  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a5179d99711863596f23e95f6fb5d8e43">更多...</a><br /></td></tr>
<tr class="separator:a5179d99711863596f23e95f6fb5d8e43"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a57cd914fb11ce81178025c18e33504b0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a57cd914fb11ce81178025c18e33504b0">OutofcoreOctreeBase</a> (const Eigen::Vector3d &amp;min, const Eigen::Vector3d &amp;max, const double resolution_arg, const boost::filesystem::path &amp;root_node_name, const std::string &amp;coord_sys)</td></tr>
<tr class="memdesc:a57cd914fb11ce81178025c18e33504b0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new tree  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a57cd914fb11ce81178025c18e33504b0">更多...</a><br /></td></tr>
<tr class="separator:a57cd914fb11ce81178025c18e33504b0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54788b52aa04f6fcf661477bf0945fc0"><td class="memItemLeft" align="right" valign="top">&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a54788b52aa04f6fcf661477bf0945fc0">OutofcoreOctreeBase</a> (const boost::uint64_t max_depth, const Eigen::Vector3d &amp;min, const Eigen::Vector3d &amp;max, const boost::filesystem::path &amp;root_node_name, const std::string &amp;coord_sys)</td></tr>
<tr class="memdesc:a54788b52aa04f6fcf661477bf0945fc0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Create a new tree; will not overwrite existing tree of same name  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a54788b52aa04f6fcf661477bf0945fc0">更多...</a><br /></td></tr>
<tr class="separator:a54788b52aa04f6fcf661477bf0945fc0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab9949de562ff8a27b5f59ded5c66228f"><td class="memItemLeft" align="right" valign="top">boost::uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ab9949de562ff8a27b5f59ded5c66228f">addDataToLeaf</a> (const AlignedPointTVector &amp;p)</td></tr>
<tr class="memdesc:ab9949de562ff8a27b5f59ded5c66228f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Recursively add points to the tree  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ab9949de562ff8a27b5f59ded5c66228f">更多...</a><br /></td></tr>
<tr class="separator:ab9949de562ff8a27b5f59ded5c66228f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9935cc37d3d7a446d73ab14636b5496"><td class="memItemLeft" align="right" valign="top">boost::uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#af9935cc37d3d7a446d73ab14636b5496">addPointCloud</a> (PointCloudConstPtr point_cloud)</td></tr>
<tr class="memdesc:af9935cc37d3d7a446d73ab14636b5496"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copies the points from the point_cloud falling within the bounding box of the octree to the out-of-core octree; this is an interface to addDataToLeaf and can be used multiple times.  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#af9935cc37d3d7a446d73ab14636b5496">更多...</a><br /></td></tr>
<tr class="separator:af9935cc37d3d7a446d73ab14636b5496"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9111fda6d22e8c21766b42facaca2d63"><td class="memItemLeft" align="right" valign="top">boost::uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a9111fda6d22e8c21766b42facaca2d63">addPointCloud</a> (pcl::PCLPointCloud2::Ptr &amp;input_cloud, const bool skip_bb_check=false)</td></tr>
<tr class="memdesc:a9111fda6d22e8c21766b42facaca2d63"><td class="mdescLeft">&#160;</td><td class="mdescRight">Recursively copies points from input_cloud into the leaf nodes of the out-of-core octree, and stores them to disk.  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a9111fda6d22e8c21766b42facaca2d63">更多...</a><br /></td></tr>
<tr class="separator:a9111fda6d22e8c21766b42facaca2d63"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa529ccd903769b78d419ea8c12a62b93"><td class="memItemLeft" align="right" valign="top">boost::uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aa529ccd903769b78d419ea8c12a62b93">addPointCloud_and_genLOD</a> (pcl::PCLPointCloud2::Ptr &amp;input_cloud)</td></tr>
<tr class="memdesc:aa529ccd903769b78d419ea8c12a62b93"><td class="mdescLeft">&#160;</td><td class="mdescRight">Recursively add points to the tree.  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aa529ccd903769b78d419ea8c12a62b93">更多...</a><br /></td></tr>
<tr class="separator:aa529ccd903769b78d419ea8c12a62b93"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a75db77275c9065f37243310beeb92bfe"><td class="memItemLeft" align="right" valign="top"><a id="a75db77275c9065f37243310beeb92bfe"></a>
boost::uint64_t&#160;</td><td class="memItemRight" valign="bottom"><b>addPointCloud</b> (pcl::PCLPointCloud2::Ptr &amp;input_cloud)</td></tr>
<tr class="separator:a75db77275c9065f37243310beeb92bfe"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aba70dcf5fd54a18a0102dfa4cd43fe6b"><td class="memItemLeft" align="right" valign="top"><a id="aba70dcf5fd54a18a0102dfa4cd43fe6b"></a>
boost::uint64_t&#160;</td><td class="memItemRight" valign="bottom"><b>addPointCloud_and_genLOD</b> (PointCloudConstPtr point_cloud)</td></tr>
<tr class="separator:aba70dcf5fd54a18a0102dfa4cd43fe6b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae45a9210229dff9276e79796147b941c"><td class="memItemLeft" align="right" valign="top">boost::uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ae45a9210229dff9276e79796147b941c">addDataToLeaf_and_genLOD</a> (AlignedPointTVector &amp;p)</td></tr>
<tr class="memdesc:ae45a9210229dff9276e79796147b941c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Recursively add points to the tree subsampling LODs on the way.  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ae45a9210229dff9276e79796147b941c">更多...</a><br /></td></tr>
<tr class="separator:ae45a9210229dff9276e79796147b941c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2a4c1ce1e4f71b8c20e8674cfa51881f"><td class="memItemLeft" align="right" valign="top"><a id="a2a4c1ce1e4f71b8c20e8674cfa51881f"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>queryFrustum</b> (const double *planes, std::list&lt; std::string &gt; &amp;file_names) const</td></tr>
<tr class="separator:a2a4c1ce1e4f71b8c20e8674cfa51881f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a95133467c1f8f8324fb7b58556de6af8"><td class="memItemLeft" align="right" valign="top"><a id="a95133467c1f8f8324fb7b58556de6af8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>queryFrustum</b> (const double *planes, std::list&lt; std::string &gt; &amp;file_names, const boost::uint32_t query_depth) const</td></tr>
<tr class="separator:a95133467c1f8f8324fb7b58556de6af8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a12339892d94b007536df160441c1e4ac"><td class="memItemLeft" align="right" valign="top"><a id="a12339892d94b007536df160441c1e4ac"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>queryFrustum</b> (const double *planes, const Eigen::Vector3d &amp;eye, const Eigen::Matrix4d &amp;view_projection_matrix, std::list&lt; std::string &gt; &amp;file_names, const boost::uint32_t query_depth) const</td></tr>
<tr class="separator:a12339892d94b007536df160441c1e4ac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:add153493b87d05fe3056c915af660e09"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#add153493b87d05fe3056c915af660e09">queryBBIntersects</a> (const Eigen::Vector3d &amp;min, const Eigen::Vector3d &amp;max, const boost::uint32_t query_depth, std::list&lt; std::string &gt; &amp;bin_name) const</td></tr>
<tr class="memdesc:add153493b87d05fe3056c915af660e09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a list of file paths at query_depth that intersect with your bounding box specified by <code>min</code> and <code>max</code>. When querying with this method, you may be stuck with extra data (some outside of your query bounds) that reside in the files.  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#add153493b87d05fe3056c915af660e09">更多...</a><br /></td></tr>
<tr class="separator:add153493b87d05fe3056c915af660e09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a28a9432ba893f51f530216d0fb9493f0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a28a9432ba893f51f530216d0fb9493f0">queryBBIncludes</a> (const Eigen::Vector3d &amp;min, const Eigen::Vector3d &amp;max, const boost::uint64_t query_depth, AlignedPointTVector &amp;dst) const</td></tr>
<tr class="memdesc:a28a9432ba893f51f530216d0fb9493f0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get Points in BB, only points inside BB. The query processes the data at each node, filtering points that fall out of the query bounds, and returns a single, concatenated point cloud.  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a28a9432ba893f51f530216d0fb9493f0">更多...</a><br /></td></tr>
<tr class="separator:a28a9432ba893f51f530216d0fb9493f0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a38d9c6517985a17992b4e7c357a19602"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a38d9c6517985a17992b4e7c357a19602">queryBBIncludes</a> (const Eigen::Vector3d &amp;min, const Eigen::Vector3d &amp;max, const boost::uint64_t query_depth, const pcl::PCLPointCloud2::Ptr &amp;dst_blob) const</td></tr>
<tr class="memdesc:a38d9c6517985a17992b4e7c357a19602"><td class="mdescLeft">&#160;</td><td class="mdescRight">Query all points falling within the input bounding box at <code>query_depth</code> and return a <a class="el" href="structpcl_1_1_p_c_l_point_cloud2.html">PCLPointCloud2</a> object in <code>dst_blob</code>.  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a38d9c6517985a17992b4e7c357a19602">更多...</a><br /></td></tr>
<tr class="separator:a38d9c6517985a17992b4e7c357a19602"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaf494098c2abc44725cfe5e9210e2bf0"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aaf494098c2abc44725cfe5e9210e2bf0">queryBBIncludes_subsample</a> (const Eigen::Vector3d &amp;min, const Eigen::Vector3d &amp;max, uint64_t query_depth, const double percent, AlignedPointTVector &amp;dst) const</td></tr>
<tr class="memdesc:aaf494098c2abc44725cfe5e9210e2bf0"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns a random subsample of points within the given bounding box at <code>query_depth</code>.  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aaf494098c2abc44725cfe5e9210e2bf0">更多...</a><br /></td></tr>
<tr class="separator:aaf494098c2abc44725cfe5e9210e2bf0"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a78e22dfa93a11f383e9bf878801f17c7"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a78e22dfa93a11f383e9bf878801f17c7">queryBoundingBox</a> (const Eigen::Vector3d &amp;min, const Eigen::Vector3d &amp;max, const int query_depth, const pcl::PCLPointCloud2::Ptr &amp;dst_blob, double percent=1.0)</td></tr>
<tr class="memdesc:a78e22dfa93a11f383e9bf878801f17c7"><td class="mdescLeft">&#160;</td><td class="mdescRight">Query all points falling within the input bounding box at <code>query_depth</code> and return a <a class="el" href="structpcl_1_1_p_c_l_point_cloud2.html">PCLPointCloud2</a> object in <code>dst_blob</code>. If the optional argument for filter is given, points are processed by that filter before returning.  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a78e22dfa93a11f383e9bf878801f17c7">更多...</a><br /></td></tr>
<tr class="separator:a78e22dfa93a11f383e9bf878801f17c7"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0fb902b66afb9706cf028f52b690296e"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a0fb902b66afb9706cf028f52b690296e">queryBoundingBox</a> (const Eigen::Vector3d &amp;min, const Eigen::Vector3d &amp;max, const int query_depth, std::list&lt; std::string &gt; &amp;filenames) const</td></tr>
<tr class="memdesc:a0fb902b66afb9706cf028f52b690296e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns list of pcd files from nodes whose bounding boxes intersect with the input bounding box.  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a0fb902b66afb9706cf028f52b690296e">更多...</a><br /></td></tr>
<tr class="separator:a0fb902b66afb9706cf028f52b690296e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6fc174b7881c9398c29c3f475c8f859d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a6fc174b7881c9398c29c3f475c8f859d">getBoundingBox</a> (Eigen::Vector3d &amp;min, Eigen::Vector3d &amp;max) const</td></tr>
<tr class="memdesc:a6fc174b7881c9398c29c3f475c8f859d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get the overall bounding box of the outofcore octree; this is the same as the bounding box of the <code>root_node_</code> node  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a6fc174b7881c9398c29c3f475c8f859d">更多...</a><br /></td></tr>
<tr class="separator:a6fc174b7881c9398c29c3f475c8f859d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a476f3c09a27835491ee41343d164a7a3"><td class="memItemLeft" align="right" valign="top">boost::uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a476f3c09a27835491ee41343d164a7a3">getNumPointsAtDepth</a> (const boost::uint64_t &amp;depth_index) const</td></tr>
<tr class="memdesc:a476f3c09a27835491ee41343d164a7a3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get number of points at specified LOD  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a476f3c09a27835491ee41343d164a7a3">更多...</a><br /></td></tr>
<tr class="separator:a476f3c09a27835491ee41343d164a7a3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a869371c4f7867438093f010d140e7610"><td class="memItemLeft" align="right" valign="top">boost::uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a869371c4f7867438093f010d140e7610">queryBoundingBoxNumPoints</a> (const Eigen::Vector3d &amp;min, const Eigen::Vector3d &amp;max, const int query_depth, bool load_from_disk=true)</td></tr>
<tr class="memdesc:a869371c4f7867438093f010d140e7610"><td class="mdescLeft">&#160;</td><td class="mdescRight">Queries the number of points in a bounding box  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a869371c4f7867438093f010d140e7610">更多...</a><br /></td></tr>
<tr class="separator:a869371c4f7867438093f010d140e7610"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a548be9c74c1c6f514c02d560893f94a5"><td class="memItemLeft" align="right" valign="top">const std::vector&lt; boost::uint64_t &gt; &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a548be9c74c1c6f514c02d560893f94a5">getNumPointsVector</a> () const</td></tr>
<tr class="memdesc:a548be9c74c1c6f514c02d560893f94a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get number of points at each LOD  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a548be9c74c1c6f514c02d560893f94a5">更多...</a><br /></td></tr>
<tr class="separator:a548be9c74c1c6f514c02d560893f94a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3f79123ee56bd995540a7bbc56da33a6"><td class="memItemLeft" align="right" valign="top"><a id="a3f79123ee56bd995540a7bbc56da33a6"></a>
boost::uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a3f79123ee56bd995540a7bbc56da33a6">getDepth</a> () const</td></tr>
<tr class="memdesc:a3f79123ee56bd995540a7bbc56da33a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get number of LODs, which is the height of the tree <br /></td></tr>
<tr class="separator:a3f79123ee56bd995540a7bbc56da33a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adffca74a7b40ec74e139599d533db6ab"><td class="memItemLeft" align="right" valign="top"><a id="adffca74a7b40ec74e139599d533db6ab"></a>
boost::uint64_t&#160;</td><td class="memItemRight" valign="bottom"><b>getTreeDepth</b> () const</td></tr>
<tr class="separator:adffca74a7b40ec74e139599d533db6ab"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a85c71b6e26801a60d735e8e02810ddd5"><td class="memItemLeft" align="right" valign="top"><a id="a85c71b6e26801a60d735e8e02810ddd5"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a85c71b6e26801a60d735e8e02810ddd5">getBinDimension</a> (double &amp;x, double &amp;y) const</td></tr>
<tr class="memdesc:a85c71b6e26801a60d735e8e02810ddd5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the expected voxel dimensions at the leaves <br /></td></tr>
<tr class="separator:a85c71b6e26801a60d735e8e02810ddd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a45bad619558c5662ebca68331b941c5d"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a45bad619558c5662ebca68331b941c5d">getVoxelSideLength</a> (const boost::uint64_t &amp;depth) const</td></tr>
<tr class="memdesc:a45bad619558c5662ebca68331b941c5d"><td class="mdescLeft">&#160;</td><td class="mdescRight">gets the side length of an (assumed) perfect cubic voxel.  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a45bad619558c5662ebca68331b941c5d">更多...</a><br /></td></tr>
<tr class="separator:a45bad619558c5662ebca68331b941c5d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7503db4c6b543960b5de57d545cdb9fa"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a7503db4c6b543960b5de57d545cdb9fa">getVoxelSideLength</a> () const</td></tr>
<tr class="memdesc:a7503db4c6b543960b5de57d545cdb9fa"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the smallest (assumed) cubic voxel side lengths. The smallest voxels are located at the max depth of the tree.  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a7503db4c6b543960b5de57d545cdb9fa">更多...</a><br /></td></tr>
<tr class="separator:a7503db4c6b543960b5de57d545cdb9fa"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ad80ae18b2a77a25c4562da556813a5"><td class="memItemLeft" align="right" valign="top"><a id="a5ad80ae18b2a77a25c4562da556813a5"></a>
const std::string &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a5ad80ae18b2a77a25c4562da556813a5">getCoordSystem</a> () const</td></tr>
<tr class="memdesc:a5ad80ae18b2a77a25c4562da556813a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get coordinate system tag from the JSON metadata file <br /></td></tr>
<tr class="separator:a5ad80ae18b2a77a25c4562da556813a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a584cd23262207c96c2dd9f7479c1ec09"><td class="memItemLeft" align="right" valign="top"><a id="a584cd23262207c96c2dd9f7479c1ec09"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a584cd23262207c96c2dd9f7479c1ec09">buildLOD</a> ()</td></tr>
<tr class="memdesc:a584cd23262207c96c2dd9f7479c1ec09"><td class="mdescLeft">&#160;</td><td class="mdescRight">Generate multi-resolution LODs for the tree, which are a uniform random sampling all child leafs below the node. <br /></td></tr>
<tr class="separator:a584cd23262207c96c2dd9f7479c1ec09"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4a536d621e95e59d1370a24bc0009a04"><td class="memItemLeft" align="right" valign="top"><a id="a4a536d621e95e59d1370a24bc0009a04"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a4a536d621e95e59d1370a24bc0009a04">printBoundingBox</a> (const size_t query_depth) const</td></tr>
<tr class="memdesc:a4a536d621e95e59d1370a24bc0009a04"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints size of BBox to stdout <br /></td></tr>
<tr class="separator:a4a536d621e95e59d1370a24bc0009a04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac3b246a0a9e89d165539526082a89a69"><td class="memItemLeft" align="right" valign="top"><a id="ac3b246a0a9e89d165539526082a89a69"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ac3b246a0a9e89d165539526082a89a69">printBoundingBox</a> (<a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">OutofcoreNodeType</a> &amp;node) const</td></tr>
<tr class="memdesc:ac3b246a0a9e89d165539526082a89a69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints the coordinates of the bounding box of the node to stdout <br /></td></tr>
<tr class="separator:ac3b246a0a9e89d165539526082a89a69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a9d5836dca2e0f777f61382e7bbf82b52"><td class="memItemLeft" align="right" valign="top"><a id="a9d5836dca2e0f777f61382e7bbf82b52"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a9d5836dca2e0f777f61382e7bbf82b52">printBoundingBox</a> () const</td></tr>
<tr class="memdesc:a9d5836dca2e0f777f61382e7bbf82b52"><td class="mdescLeft">&#160;</td><td class="mdescRight">Prints size of the bounding boxes to stdou <br /></td></tr>
<tr class="separator:a9d5836dca2e0f777f61382e7bbf82b52"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a77fd4203868a748bf8671cba4b328297"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a77fd4203868a748bf8671cba4b328297">getOccupiedVoxelCenters</a> (AlignedPointTVector &amp;voxel_centers, size_t query_depth) const</td></tr>
<tr class="memdesc:a77fd4203868a748bf8671cba4b328297"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the voxel centers of all existing voxels at <code>query_depth</code>  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a77fd4203868a748bf8671cba4b328297">更多...</a><br /></td></tr>
<tr class="separator:a77fd4203868a748bf8671cba4b328297"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a502807c3d76874c2d3b990a810a6ec32"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a502807c3d76874c2d3b990a810a6ec32">getOccupiedVoxelCenters</a> (std::vector&lt; Eigen::Vector3d, Eigen::aligned_allocator&lt; Eigen::Vector3d &gt; &gt; &amp;voxel_centers, size_t query_depth) const</td></tr>
<tr class="memdesc:a502807c3d76874c2d3b990a810a6ec32"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the voxel centers of all existing voxels at <code>query_depth</code>  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a502807c3d76874c2d3b990a810a6ec32">更多...</a><br /></td></tr>
<tr class="separator:a502807c3d76874c2d3b990a810a6ec32"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab8aa7026f1efb0ec60cf4fc68cb2dc73"><td class="memItemLeft" align="right" valign="top"><a id="ab8aa7026f1efb0ec60cf4fc68cb2dc73"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ab8aa7026f1efb0ec60cf4fc68cb2dc73">getOccupiedVoxelCenters</a> (AlignedPointTVector &amp;voxel_centers) const</td></tr>
<tr class="memdesc:ab8aa7026f1efb0ec60cf4fc68cb2dc73"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the voxel centers of all occupied/existing leaves of the tree <br /></td></tr>
<tr class="separator:ab8aa7026f1efb0ec60cf4fc68cb2dc73"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee6b0d199c7592c667ff52b877cb3546"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aee6b0d199c7592c667ff52b877cb3546">getOccupiedVoxelCenters</a> (std::vector&lt; Eigen::Vector3d, Eigen::aligned_allocator&lt; Eigen::Vector3d &gt; &gt; &amp;voxel_centers) const</td></tr>
<tr class="memdesc:aee6b0d199c7592c667ff52b877cb3546"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the voxel centers of all occupied/existing leaves of the tree  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aee6b0d199c7592c667ff52b877cb3546">更多...</a><br /></td></tr>
<tr class="separator:aee6b0d199c7592c667ff52b877cb3546"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a486d577a151fc9d239ce0c5847404857"><td class="memItemLeft" align="right" valign="top"><a id="a486d577a151fc9d239ce0c5847404857"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a486d577a151fc9d239ce0c5847404857">convertToXYZ</a> ()</td></tr>
<tr class="memdesc:a486d577a151fc9d239ce0c5847404857"><td class="mdescLeft">&#160;</td><td class="mdescRight">Save each .bin file as an XYZ file <br /></td></tr>
<tr class="separator:a486d577a151fc9d239ce0c5847404857"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e45f536c703b713034fb558ffb120a8"><td class="memItemLeft" align="right" valign="top"><a id="a5e45f536c703b713034fb558ffb120a8"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a5e45f536c703b713034fb558ffb120a8">writeVPythonVisual</a> (const boost::filesystem::path filename)</td></tr>
<tr class="memdesc:a5e45f536c703b713034fb558ffb120a8"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write a python script using the vpython module containing all the bounding boxes <br /></td></tr>
<tr class="separator:a5e45f536c703b713034fb558ffb120a8"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab1405bc7c385cdeb4f9f062363865079"><td class="memItemLeft" align="right" valign="top"><a id="ab1405bc7c385cdeb4f9f062363865079"></a>
<a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">OutofcoreNodeType</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>getBranchChildPtr</b> (const <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">BranchNode</a> &amp;branch_arg, unsigned char childIdx_arg) const</td></tr>
<tr class="separator:ab1405bc7c385cdeb4f9f062363865079"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4a8e4d216375b40b77e81fdde549274"><td class="memItemLeft" align="right" valign="top"><a id="af4a8e4d216375b40b77e81fdde549274"></a>
<a class="el" href="classpcl_1_1_filter.html">pcl::Filter</a>&lt; <a class="el" href="structpcl_1_1_p_c_l_point_cloud2.html">pcl::PCLPointCloud2</a> &gt;::Ptr&#160;</td><td class="memItemRight" valign="bottom"><b>getLODFilter</b> ()</td></tr>
<tr class="separator:af4a8e4d216375b40b77e81fdde549274"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af4669247345995c92001613c7f85ef37"><td class="memItemLeft" align="right" valign="top"><a id="af4669247345995c92001613c7f85ef37"></a>
const <a class="el" href="classpcl_1_1_filter.html">pcl::Filter</a>&lt; <a class="el" href="structpcl_1_1_p_c_l_point_cloud2.html">pcl::PCLPointCloud2</a> &gt;::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>getLODFilter</b> () const</td></tr>
<tr class="separator:af4669247345995c92001613c7f85ef37"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae9c467ba6aef4639fc870bb78d5585ce"><td class="memItemLeft" align="right" valign="top"><a id="ae9c467ba6aef4639fc870bb78d5585ce"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ae9c467ba6aef4639fc870bb78d5585ce">setLODFilter</a> (const <a class="el" href="classpcl_1_1_filter.html">pcl::Filter</a>&lt; <a class="el" href="structpcl_1_1_p_c_l_point_cloud2.html">pcl::PCLPointCloud2</a> &gt;::Ptr &amp;filter_arg)</td></tr>
<tr class="memdesc:ae9c467ba6aef4639fc870bb78d5585ce"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the filter to use when building the levels of depth. Recommended filters are <a class="el" href="classpcl_1_1_random_sample_3_01pcl_1_1_p_c_l_point_cloud2_01_4.html" title="RandomSample applies a random sampling with uniform probability.">pcl::RandomSample&lt;pcl::PCLPointCloud2&gt;</a> or <a class="el" href="classpcl_1_1_voxel_grid.html" title="VoxelGrid assembles a local 3D grid over a given PointCloud, and downsamples + filters the data.">pcl::VoxelGrid</a> <br /></td></tr>
<tr class="separator:ae9c467ba6aef4639fc870bb78d5585ce"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae23706d3a2e2fdd67abb3bb71ea28809"><td class="memItemLeft" align="right" valign="top"><a id="ae23706d3a2e2fdd67abb3bb71ea28809"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ae23706d3a2e2fdd67abb3bb71ea28809">getSamplePercent</a> () const</td></tr>
<tr class="memdesc:ae23706d3a2e2fdd67abb3bb71ea28809"><td class="mdescLeft">&#160;</td><td class="mdescRight">Returns the sample_percent_ used when constructing the LOD. <br /></td></tr>
<tr class="separator:ae23706d3a2e2fdd67abb3bb71ea28809"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad252ba0d14389fc15ebbb1325c478598"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ad252ba0d14389fc15ebbb1325c478598">setSamplePercent</a> (const double sample_percent_arg)</td></tr>
<tr class="memdesc:ad252ba0d14389fc15ebbb1325c478598"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the sampling percent for constructing LODs. Each LOD gets sample_percent^d points.  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ad252ba0d14389fc15ebbb1325c478598">更多...</a><br /></td></tr>
<tr class="separator:ad252ba0d14389fc15ebbb1325c478598"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected 成员函数</h2></td></tr>
<tr class="memitem:aa796d98a5ecda766e27b391ea18f0986"><td class="memItemLeft" align="right" valign="top"><a id="aa796d98a5ecda766e27b391ea18f0986"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><b>init</b> (const boost::uint64_t &amp;depth, const Eigen::Vector3d &amp;min, const Eigen::Vector3d &amp;max, const boost::filesystem::path &amp;root_name, const std::string &amp;coord_sys)</td></tr>
<tr class="separator:aa796d98a5ecda766e27b391ea18f0986"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc677b69431e3bc29a1065f49757fdc4"><td class="memItemLeft" align="right" valign="top"><a id="adc677b69431e3bc29a1065f49757fdc4"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>OutofcoreOctreeBase</b> (<a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">OutofcoreOctreeBase</a> &amp;rval)</td></tr>
<tr class="separator:adc677b69431e3bc29a1065f49757fdc4"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:abc70bb387937f9cc207a967dbc0869e6"><td class="memItemLeft" align="right" valign="top"><a id="abc70bb387937f9cc207a967dbc0869e6"></a>
&#160;</td><td class="memItemRight" valign="bottom"><b>OutofcoreOctreeBase</b> (const <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">OutofcoreOctreeBase</a> &amp;rval)</td></tr>
<tr class="separator:abc70bb387937f9cc207a967dbc0869e6"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a16d9fa42050fc8cb77824e7deef3cd34"><td class="memItemLeft" align="right" valign="top"><a id="a16d9fa42050fc8cb77824e7deef3cd34"></a>
<a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">OutofcoreOctreeBase</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (<a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">OutofcoreOctreeBase</a> &amp;rval)</td></tr>
<tr class="separator:a16d9fa42050fc8cb77824e7deef3cd34"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0c602b604859bbc6bd591fc3cc422816"><td class="memItemLeft" align="right" valign="top"><a id="a0c602b604859bbc6bd591fc3cc422816"></a>
<a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">OutofcoreOctreeBase</a> &amp;&#160;</td><td class="memItemRight" valign="bottom"><b>operator=</b> (const <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">OutofcoreOctreeBase</a> &amp;rval)</td></tr>
<tr class="separator:a0c602b604859bbc6bd591fc3cc422816"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a98274590b153b5607a37dd93c3142bd5"><td class="memItemLeft" align="right" valign="top"><a id="a98274590b153b5607a37dd93c3142bd5"></a>
<a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">OutofcoreNodeType</a> *&#160;</td><td class="memItemRight" valign="bottom"><b>getRootNode</b> ()</td></tr>
<tr class="separator:a98274590b153b5607a37dd93c3142bd5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a326cc74e7e04a1894f61c6d7892fc563"><td class="memItemLeft" align="right" valign="top"><a id="a326cc74e7e04a1894f61c6d7892fc563"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a326cc74e7e04a1894f61c6d7892fc563">DeAllocEmptyNodeCache</a> (<a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">OutofcoreNodeType</a> *current)</td></tr>
<tr class="memdesc:a326cc74e7e04a1894f61c6d7892fc563"><td class="mdescLeft">&#160;</td><td class="mdescRight">flush empty nodes only <br /></td></tr>
<tr class="separator:a326cc74e7e04a1894f61c6d7892fc563"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad68edd845380ab62afecead45d63e84c"><td class="memItemLeft" align="right" valign="top"><a id="ad68edd845380ab62afecead45d63e84c"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ad68edd845380ab62afecead45d63e84c">saveToFile</a> ()</td></tr>
<tr class="memdesc:ad68edd845380ab62afecead45d63e84c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Write octree definition ".octree" (defined by octree_extension_) to disk <br /></td></tr>
<tr class="separator:ad68edd845380ab62afecead45d63e84c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa9a1b79193cb7b3313b5c5a4cabae515"><td class="memItemLeft" align="right" valign="top"><a id="aa9a1b79193cb7b3313b5c5a4cabae515"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aa9a1b79193cb7b3313b5c5a4cabae515">buildLODRecursive</a> (const std::vector&lt; <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">BranchNode</a> * &gt; &amp;current_branch)</td></tr>
<tr class="memdesc:aa9a1b79193cb7b3313b5c5a4cabae515"><td class="mdescLeft">&#160;</td><td class="mdescRight">recursive portion of lod builder <br /></td></tr>
<tr class="separator:aa9a1b79193cb7b3313b5c5a4cabae515"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad947ba219d7372986f74557f90d57f9d"><td class="memItemLeft" align="right" valign="top"><a id="ad947ba219d7372986f74557f90d57f9d"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ad947ba219d7372986f74557f90d57f9d">incrementPointsInLOD</a> (boost::uint64_t depth, boost::uint64_t inc)</td></tr>
<tr class="memdesc:ad947ba219d7372986f74557f90d57f9d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Increment current depths (LOD for branch nodes) point count; called by addDataAtMaxDepth in <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html" title="OutofcoreOctreeBaseNode Class internally representing nodes of an outofcore octree,...">OutofcoreOctreeBaseNode</a> <br /></td></tr>
<tr class="separator:ad947ba219d7372986f74557f90d57f9d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7ff969ea904c00109ed88879bde8d83c"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a7ff969ea904c00109ed88879bde8d83c">checkExtension</a> (const boost::filesystem::path &amp;path_name)</td></tr>
<tr class="memdesc:a7ff969ea904c00109ed88879bde8d83c"><td class="mdescLeft">&#160;</td><td class="mdescRight">Auxiliary function to validate path_name extension is .octree  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a7ff969ea904c00109ed88879bde8d83c">更多...</a><br /></td></tr>
<tr class="separator:a7ff969ea904c00109ed88879bde8d83c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a96b5cd1cd503b45587ace58f25261d66"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a96b5cd1cd503b45587ace58f25261d66">flushToDisk</a> ()</td></tr>
<tr class="memdesc:a96b5cd1cd503b45587ace58f25261d66"><td class="mdescLeft">&#160;</td><td class="mdescRight">DEPRECATED - Flush all nodes' cache  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a96b5cd1cd503b45587ace58f25261d66">更多...</a><br /></td></tr>
<tr class="separator:a96b5cd1cd503b45587ace58f25261d66"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a775eca5a56a0386a96a34f6ca11b1b04"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a775eca5a56a0386a96a34f6ca11b1b04">flushToDiskLazy</a> ()</td></tr>
<tr class="memdesc:a775eca5a56a0386a96a34f6ca11b1b04"><td class="mdescLeft">&#160;</td><td class="mdescRight">DEPRECATED - Flush all non leaf nodes' cache  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a775eca5a56a0386a96a34f6ca11b1b04">更多...</a><br /></td></tr>
<tr class="separator:a775eca5a56a0386a96a34f6ca11b1b04"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a010534fb915cc90f68375bc4bc49ce51"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a010534fb915cc90f68375bc4bc49ce51">DeAllocEmptyNodeCache</a> ()</td></tr>
<tr class="memdesc:a010534fb915cc90f68375bc4bc49ce51"><td class="mdescLeft">&#160;</td><td class="mdescRight">DEPRECATED - Flush empty nodes only  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a010534fb915cc90f68375bc4bc49ce51">更多...</a><br /></td></tr>
<tr class="separator:a010534fb915cc90f68375bc4bc49ce51"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected 属性</h2></td></tr>
<tr class="memitem:aeb7b74e9982817c45349b4bfdc951b69"><td class="memItemLeft" align="right" valign="top"><a id="aeb7b74e9982817c45349b4bfdc951b69"></a>
<a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">OutofcoreNodeType</a> *&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a></td></tr>
<tr class="memdesc:aeb7b74e9982817c45349b4bfdc951b69"><td class="mdescLeft">&#160;</td><td class="mdescRight">Pointer to the root node of the octree data structure <br /></td></tr>
<tr class="separator:aeb7b74e9982817c45349b4bfdc951b69"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a371cfa9f74bc5c39baa2e84896e5198a"><td class="memItemLeft" align="right" valign="top"><a id="a371cfa9f74bc5c39baa2e84896e5198a"></a>
boost::shared_mutex&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a371cfa9f74bc5c39baa2e84896e5198a">read_write_mutex_</a></td></tr>
<tr class="memdesc:a371cfa9f74bc5c39baa2e84896e5198a"><td class="mdescLeft">&#160;</td><td class="mdescRight">shared mutex for controlling read/write access to disk <br /></td></tr>
<tr class="separator:a371cfa9f74bc5c39baa2e84896e5198a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac303e5dd1fc2ba4c0300b3ddf4507421"><td class="memItemLeft" align="right" valign="top"><a id="ac303e5dd1fc2ba4c0300b3ddf4507421"></a>
boost::shared_ptr&lt; <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_metadata.html">OutofcoreOctreeBaseMetadata</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>metadata_</b></td></tr>
<tr class="separator:ac303e5dd1fc2ba4c0300b3ddf4507421"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-static-attribs"></a>
静态 Protected 属性</h2></td></tr>
<tr class="memitem:aac1a5fb289f9bac470d291f8632e412d"><td class="memItemLeft" align="right" valign="top">static const std::string&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aac1a5fb289f9bac470d291f8632e412d">TREE_EXTENSION_</a> = &quot;.octree&quot;</td></tr>
<tr class="memdesc:aac1a5fb289f9bac470d291f8632e412d"><td class="mdescLeft">&#160;</td><td class="mdescRight">defined as ".octree" to append to treepath files  <a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aac1a5fb289f9bac470d291f8632e412d">更多...</a><br /></td></tr>
<tr class="separator:aac1a5fb289f9bac470d291f8632e412d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0f3920f092b67de7d1be1501c97ad24c"><td class="memItemLeft" align="right" valign="top"><a id="a0f3920f092b67de7d1be1501c97ad24c"></a>
static const int&#160;</td><td class="memItemRight" valign="bottom"><b>OUTOFCORE_VERSION_</b> = static_cast&lt;int&gt;(3)</td></tr>
<tr class="separator:a0f3920f092b67de7d1be1501c97ad24c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a34ee785b1805d8f119dcff009478ace8"><td class="memItemLeft" align="right" valign="top"><a id="a34ee785b1805d8f119dcff009478ace8"></a>
static const uint64_t&#160;</td><td class="memItemRight" valign="bottom"><b>LOAD_COUNT_</b> = static_cast&lt;uint64_t&gt;(2e9)</td></tr>
<tr class="separator:a34ee785b1805d8f119dcff009478ace8"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-methods"></a>
Private 成员函数</h2></td></tr>
<tr class="memitem:ad6a7ce11ab3f3b52d0b43cf936e28cf1"><td class="memItemLeft" align="right" valign="top"><a id="ad6a7ce11ab3f3b52d0b43cf936e28cf1"></a>
void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ad6a7ce11ab3f3b52d0b43cf936e28cf1">enlargeToCube</a> (Eigen::Vector3d &amp;bb_min, Eigen::Vector3d &amp;bb_max)</td></tr>
<tr class="memdesc:ad6a7ce11ab3f3b52d0b43cf936e28cf1"><td class="mdescLeft">&#160;</td><td class="mdescRight">Auxiliary function to enlarge a bounding box to a cube. <br /></td></tr>
<tr class="separator:ad6a7ce11ab3f3b52d0b43cf936e28cf1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae79f800d8cf85af8c175eef668e773a6"><td class="memItemLeft" align="right" valign="top"><a id="ae79f800d8cf85af8c175eef668e773a6"></a>
boost::uint64_t&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ae79f800d8cf85af8c175eef668e773a6">calculateDepth</a> (const Eigen::Vector3d &amp;min_bb, const Eigen::Vector3d &amp;max_bb, const double leaf_resolution)</td></tr>
<tr class="memdesc:ae79f800d8cf85af8c175eef668e773a6"><td class="mdescLeft">&#160;</td><td class="mdescRight">Auxiliary function to compute the depth of the tree given the bounding box and the desired size of the leaf voxels <br /></td></tr>
<tr class="separator:ae79f800d8cf85af8c175eef668e773a6"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pri-attribs"></a>
Private 属性</h2></td></tr>
<tr class="memitem:a93cb6b9e0face167675672a25b341323"><td class="memItemLeft" align="right" valign="top"><a id="a93cb6b9e0face167675672a25b341323"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><b>sample_percent_</b></td></tr>
<tr class="separator:a93cb6b9e0face167675672a25b341323"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a3929297fdeb72e0eed503bd8877f3ee1"><td class="memItemLeft" align="right" valign="top"><a id="a3929297fdeb72e0eed503bd8877f3ee1"></a>
<a class="el" href="classpcl_1_1_random_sample.html">pcl::RandomSample</a>&lt; <a class="el" href="structpcl_1_1_p_c_l_point_cloud2.html">pcl::PCLPointCloud2</a> &gt;::Ptr&#160;</td><td class="memItemRight" valign="bottom"><b>lod_filter_ptr_</b></td></tr>
<tr class="separator:a3929297fdeb72e0eed503bd8877f3ee1"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="friends"></a>
友元</h2></td></tr>
<tr class="memitem:ab51b2016c06036fa6cf489c9a3d6f055"><td class="memItemLeft" align="right" valign="top"><a id="ab51b2016c06036fa6cf489c9a3d6f055"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>OutofcoreOctreeBaseNode&lt; ContainerT, PointT &gt;</b></td></tr>
<tr class="separator:ab51b2016c06036fa6cf489c9a3d6f055"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5ab6aeb41934858c4f80c7becdf1b310"><td class="memItemLeft" align="right" valign="top"><a id="a5ab6aeb41934858c4f80c7becdf1b310"></a>
class&#160;</td><td class="memItemRight" valign="bottom"><b>pcl::outofcore::OutofcoreIteratorBase&lt; PointT, ContainerT &gt;</b></td></tr>
<tr class="separator:a5ab6aeb41934858c4f80c7becdf1b310"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><h3>template&lt;typename ContainerT = OutofcoreOctreeDiskContainer&lt;pcl::PointXYZ&gt;, typename PointT = pcl::PointXYZ&gt;<br />
class pcl::outofcore::OutofcoreOctreeBase&lt; ContainerT, PointT &gt;</h3>

<p>This code defines the octree used for point storage at Urban Robotics. </p>
<dl class="section note"><dt>注解</dt><dd>Code was adapted from the Urban Robotics out of core octree implementation. Contact Jacob Schloss <a href="#" onclick="location.href='mai'+'lto:'+'jac'+'ob'+'.sc'+'hl'+'oss'+'@u'+'rba'+'nr'+'obo'+'ti'+'cs.'+'ne'+'t'; return false;">jacob<span style="display: none;">.nosp@m.</span>.sch<span style="display: none;">.nosp@m.</span>loss@<span style="display: none;">.nosp@m.</span>urba<span style="display: none;">.nosp@m.</span>nrobo<span style="display: none;">.nosp@m.</span>tics<span style="display: none;">.nosp@m.</span>.net</a> with any questions. <a href="http://www.urbanrobotics.net/">http://www.urbanrobotics.net/</a>. This code was integrated for the Urban Robotics Code Sprint (URCS) by Stephen Fox (<a href="#" onclick="location.href='mai'+'lto:'+'fox'+'st'+'eph'+'en'+'d@g'+'ma'+'il.'+'co'+'m'; return false;">foxst<span style="display: none;">.nosp@m.</span>ephe<span style="display: none;">.nosp@m.</span>nd@gm<span style="display: none;">.nosp@m.</span>ail.<span style="display: none;">.nosp@m.</span>com</a>). Additional development notes can be found at <a href="http://www.pointclouds.org/blog/urcs/">http://www.pointclouds.org/blog/urcs/</a>.</dd></dl>
<p>The primary purpose of this class is an interface to the recursive traversal (recursion handled by <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html">pcl::outofcore::OutofcoreOctreeBaseNode</a>) of the in-memory/top-level octree structure. The metadata in each node can be loaded entirely into main memory, from which the tree can be traversed recursively in this state. This class provides an the interface for:</p><ol type="1">
<li>Point/Region insertion methods</li>
<li>Frustrum/box/region queries</li>
<li>Parameterization of resolution, container type, etc...</li>
</ol>
<p>For lower-level node access, there is a Depth-First iterator for traversing the trees with direct access to the nodes. This can be used for implementing other algorithms, and other iterators can be written in a similar fashion.</p>
<p>The format of the octree is stored on disk in a hierarchical octree structure, where .oct_idx are the JSON-based node metadata files managed by <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_node_metadata.html">pcl::outofcore::OutofcoreOctreeNodeMetadata</a>, and .octree is the JSON-based octree metadata file managed by <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_metadata.html">pcl::outofcore::OutofcoreOctreeBaseMetadata</a>. Children of each node live in up to eight subdirectories named from 0 to 7, where a metadata and optionally a pcd file will exist. The PCD files are stored in compressed binary PCD format, containing all of the fields existing in the <a class="el" href="structpcl_1_1_p_c_l_point_cloud2.html">PCLPointCloud2</a> objects originally inserted into the out of core object.</p>
<p>A brief outline of the out of core octree can be seen below. The files in [brackets] exist only when the LOD are built.</p>
<p>At this point in time, there is not support for multiple trees existing in a single directory hierarchy.</p>
<pre class="fragment">tree_name/
     tree_name.oct_idx
     tree_name.octree
     [tree_name-uuid.pcd]
     0/
          tree_name.oct_idx
          [tree_name-uuid.pcd]
          0/
             ...
          1/
              ...
                ...
                    0/
                        tree_name.oct_idx
                        tree_name.pcd
     1/
     ...
     7/
</pre><dl class="section author"><dt>作者</dt><dd>Jacob Schloss (<a href="#" onclick="location.href='mai'+'lto:'+'jac'+'ob'+'.sc'+'hl'+'oss'+'@u'+'rba'+'nr'+'obo'+'ti'+'cs.'+'ne'+'t'; return false;">jacob<span style="display: none;">.nosp@m.</span>.sch<span style="display: none;">.nosp@m.</span>loss@<span style="display: none;">.nosp@m.</span>urba<span style="display: none;">.nosp@m.</span>nrobo<span style="display: none;">.nosp@m.</span>tics<span style="display: none;">.nosp@m.</span>.net</a>) </dd>
<dd>
Stephen Fox, Urban Robotics Code Sprint (<a href="#" onclick="location.href='mai'+'lto:'+'fox'+'st'+'eph'+'en'+'d@g'+'ma'+'il.'+'co'+'m'; return false;">foxst<span style="display: none;">.nosp@m.</span>ephe<span style="display: none;">.nosp@m.</span>nd@gm<span style="display: none;">.nosp@m.</span>ail.<span style="display: none;">.nosp@m.</span>com</a>) </dd></dl>
</div><h2 class="groupheader">构造及析构函数说明</h2>
<a id="a5179d99711863596f23e95f6fb5d8e43"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5179d99711863596f23e95f6fb5d8e43">&#9670;&nbsp;</a></span>OutofcoreOctreeBase() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT , typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::<a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">OutofcoreOctreeBase</a> </td>
          <td>(</td>
          <td class="paramtype">const boost::filesystem::path &amp;&#160;</td>
          <td class="paramname"><em>root_node_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const bool&#160;</td>
          <td class="paramname"><em>load_all</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Load an existing tree </p>
<p>If load_all is set, the BB and point count for every node is loaded, otherwise only the root node is actually created, and the rest will be generated on insertion or query.</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">root_node_name</td><td>Path to the top-level tree/tree.oct_idx metadata file </td></tr>
    <tr><td class="paramname">load_all</td><td>Load entire tree metadata (does not load any points from disk) </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>异常</dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classpcl_1_1_p_c_l_exception.html" title="A base class for all pcl exceptions which inherits from std::runtime_error">PCLException</a></td><td>for bad extension (root node metadata must be .oct_idx extension) </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;      : <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a> ()</div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;      , <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a371cfa9f74bc5c39baa2e84896e5198a">read_write_mutex_</a> ()</div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;      , metadata_ (<span class="keyword">new</span> OutofcoreOctreeBaseMetadata ())</div>
<div class="line"><a name="l00081"></a><span class="lineno">   81</span>&#160;      , sample_percent_ (0.125)</div>
<div class="line"><a name="l00082"></a><span class="lineno">   82</span>&#160;      , lod_filter_ptr_ (<span class="keyword">new</span> <a class="code" href="classpcl_1_1_random_sample_3_01pcl_1_1_p_c_l_point_cloud2_01_4.html">pcl::RandomSample&lt;pcl::PCLPointCloud2&gt;</a> ())</div>
<div class="line"><a name="l00083"></a><span class="lineno">   83</span>&#160;    {</div>
<div class="line"><a name="l00084"></a><span class="lineno">   84</span>&#160;      <span class="comment">//validate the root filename</span></div>
<div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;      <span class="keywordflow">if</span> (!this-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a7ff969ea904c00109ed88879bde8d83c">checkExtension</a> (root_name))</div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;      {</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;        PCL_THROW_EXCEPTION (PCLException, <span class="stringliteral">&quot;[pcl::outofcore::OutofcoreOctreeBase] Bad extension. Outofcore Octrees must have a root node ending in .oct_idx\n&quot;</span>);</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;      }</div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;      </div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;      <span class="comment">// Create root_node_node</span></div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160;      <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a> = <span class="keyword">new</span> OutofcoreOctreeBaseNode&lt;ContainerT, PointT&gt; (root_name, NULL, load_all);</div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;      <span class="comment">// Set root_node_nodes tree to the newly created tree</span></div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;      <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a>-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#a4f620ffb1ce5fdf0e2d0bd93b1617e9a">m_tree_</a> = <span class="keyword">this</span>;</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160; </div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;      <span class="comment">// Set the path to the outofcore octree metadata (unique to the root folder) ending in .octree</span></div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;      boost::filesystem::path treepath = root_name.parent_path () / (boost::filesystem::basename (root_name) + <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aac1a5fb289f9bac470d291f8632e412d">TREE_EXTENSION_</a>);</div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160; </div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;      <span class="comment">//Load the JSON metadata</span></div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;      metadata_-&gt;loadMetadataFromDisk (treepath);</div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;    }</div>
<div class="ttc" id="aclasspcl_1_1_random_sample_3_01pcl_1_1_p_c_l_point_cloud2_01_4_html"><div class="ttname"><a href="classpcl_1_1_random_sample_3_01pcl_1_1_p_c_l_point_cloud2_01_4.html">pcl::RandomSample&lt; pcl::PCLPointCloud2 &gt;</a></div><div class="ttdoc">RandomSample applies a random sampling with uniform probability.</div><div class="ttdef"><b>Definition:</b> random_sample.h:156</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a371cfa9f74bc5c39baa2e84896e5198a"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a371cfa9f74bc5c39baa2e84896e5198a">pcl::outofcore::OutofcoreOctreeBase::read_write_mutex_</a></div><div class="ttdeci">boost::shared_mutex read_write_mutex_</div><div class="ttdoc">shared mutex for controlling read/write access to disk</div><div class="ttdef"><b>Definition:</b> octree_base.h:636</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a7ff969ea904c00109ed88879bde8d83c"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a7ff969ea904c00109ed88879bde8d83c">pcl::outofcore::OutofcoreOctreeBase::checkExtension</a></div><div class="ttdeci">bool checkExtension(const boost::filesystem::path &amp;path_name)</div><div class="ttdoc">Auxiliary function to validate path_name extension is .octree</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:698</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_aac1a5fb289f9bac470d291f8632e412d"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aac1a5fb289f9bac470d291f8632e412d">pcl::outofcore::OutofcoreOctreeBase::TREE_EXTENSION_</a></div><div class="ttdeci">static const std::string TREE_EXTENSION_</div><div class="ttdoc">defined as &quot;.octree&quot; to append to treepath files</div><div class="ttdef"><b>Definition:</b> octree_base.h:643</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_aeb7b74e9982817c45349b4bfdc951b69"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">pcl::outofcore::OutofcoreOctreeBase::root_node_</a></div><div class="ttdeci">OutofcoreNodeType * root_node_</div><div class="ttdoc">Pointer to the root node of the octree data structure</div><div class="ttdef"><b>Definition:</b> octree_base.h:633</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_node_html_a4f620ffb1ce5fdf0e2d0bd93b1617e9a"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#a4f620ffb1ce5fdf0e2d0bd93b1617e9a">pcl::outofcore::OutofcoreOctreeBaseNode::m_tree_</a></div><div class="ttdeci">OutofcoreOctreeBase&lt; ContainerT, PointT &gt; * m_tree_</div><div class="ttdoc">The tree we belong to</div><div class="ttdef"><b>Definition:</b> octree_base_node.h:534</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a57cd914fb11ce81178025c18e33504b0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a57cd914fb11ce81178025c18e33504b0">&#9670;&nbsp;</a></span>OutofcoreOctreeBase() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT , typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::<a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">OutofcoreOctreeBase</a> </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Vector3d &amp;&#160;</td>
          <td class="paramname"><em>min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector3d &amp;&#160;</td>
          <td class="paramname"><em>max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>resolution_arg</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const boost::filesystem::path &amp;&#160;</td>
          <td class="paramname"><em>root_node_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>coord_sys</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new tree </p>
<p>Create a new tree rootname with specified bounding box; will remove and overwrite existing tree with the same name</p>
<p>Computes the depth of the tree based on desired leaf , then calls the other constructor.</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">min</td><td>Bounding box min </td></tr>
    <tr><td class="paramname">max</td><td>Bounding box max </td></tr>
    <tr><td class="paramname">resolution_arg</td><td>Node dimension in meters (assuming your point data is in meters) </td></tr>
    <tr><td class="paramname">root_node_name</td><td>must end in ".oct_idx" </td></tr>
    <tr><td class="paramname">coord_sys</td><td>Coordinate system which is stored in the JSON metadata </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>异常</dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classpcl_1_1_p_c_l_exception.html" title="A base class for all pcl exceptions which inherits from std::runtime_error">PCLException</a></td><td>if root file extension does not match pcl::outofcore::OutofcoreOctreeBaseNode::node_index_extension </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;      : <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a>()</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160;      , <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a371cfa9f74bc5c39baa2e84896e5198a">read_write_mutex_</a> ()</div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;      , metadata_ (<span class="keyword">new</span> OutofcoreOctreeBaseMetadata ())</div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;      , sample_percent_ (0.125)</div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160;      , lod_filter_ptr_ (<span class="keyword">new</span> <a class="code" href="classpcl_1_1_random_sample_3_01pcl_1_1_p_c_l_point_cloud2_01_4.html">pcl::RandomSample&lt;pcl::PCLPointCloud2&gt;</a> ())</div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;    {</div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;      <span class="comment">//Enlarge the bounding box to a cube so our voxels will be cubes</span></div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;      Eigen::Vector3d tmp_min = min;</div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;      Eigen::Vector3d tmp_max = max;</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;      this-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ad6a7ce11ab3f3b52d0b43cf936e28cf1">enlargeToCube</a> (tmp_min, tmp_max);</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160; </div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;      <span class="comment">//Compute the depth of the tree given the resolution</span></div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160;      boost::uint64_t depth = this-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ae79f800d8cf85af8c175eef668e773a6">calculateDepth</a> (tmp_min, tmp_max, resolution_arg);</div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160; </div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;      <span class="comment">//Create a new outofcore tree</span></div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;      this-&gt;init (depth, tmp_min, tmp_max, root_node_name, coord_sys);</div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    }</div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_ad6a7ce11ab3f3b52d0b43cf936e28cf1"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ad6a7ce11ab3f3b52d0b43cf936e28cf1">pcl::outofcore::OutofcoreOctreeBase::enlargeToCube</a></div><div class="ttdeci">void enlargeToCube(Eigen::Vector3d &amp;bb_min, Eigen::Vector3d &amp;bb_max)</div><div class="ttdoc">Auxiliary function to enlarge a bounding box to a cube.</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:712</div></div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_ae79f800d8cf85af8c175eef668e773a6"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ae79f800d8cf85af8c175eef668e773a6">pcl::outofcore::OutofcoreOctreeBase::calculateDepth</a></div><div class="ttdeci">boost::uint64_t calculateDepth(const Eigen::Vector3d &amp;min_bb, const Eigen::Vector3d &amp;max_bb, const double leaf_resolution)</div><div class="ttdoc">Auxiliary function to compute the depth of the tree given the bounding box and the desired size of th...</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:729</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a54788b52aa04f6fcf661477bf0945fc0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a54788b52aa04f6fcf661477bf0945fc0">&#9670;&nbsp;</a></span>OutofcoreOctreeBase() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT , typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::<a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">OutofcoreOctreeBase</a> </td>
          <td>(</td>
          <td class="paramtype">const boost::uint64_t&#160;</td>
          <td class="paramname"><em>max_depth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector3d &amp;&#160;</td>
          <td class="paramname"><em>min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector3d &amp;&#160;</td>
          <td class="paramname"><em>max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const boost::filesystem::path &amp;&#160;</td>
          <td class="paramname"><em>root_node_name</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const std::string &amp;&#160;</td>
          <td class="paramname"><em>coord_sys</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Create a new tree; will not overwrite existing tree of same name </p>
<p>Create a new tree rootname with specified bounding box; will not overwrite an existing tree</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">max_depth</td><td>Specifies a fixed number of LODs to generate, which is the depth of the tree </td></tr>
    <tr><td class="paramname">min</td><td>Bounding box min </td></tr>
    <tr><td class="paramname">max</td><td>Bounding box max </td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>Bounding box of the tree must be set before inserting any points. The tree <b>cannot</b> be resized at this time. </dd></dl>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">root_node_name</td><td>must end in ".oct_idx" </td></tr>
    <tr><td class="paramname">coord_sys</td><td>Coordinate system which is stored in the JSON metadata </td></tr>
  </table>
  </dd>
</dl>
<dl class="exception"><dt>异常</dt><dd>
  <table class="exception">
    <tr><td class="paramname"><a class="el" href="classpcl_1_1_p_c_l_exception.html" title="A base class for all pcl exceptions which inherits from std::runtime_error">PCLException</a></td><td>if the parent directory has existing children (detects an existing tree) </td></tr>
    <tr><td class="paramname"><a class="el" href="classpcl_1_1_p_c_l_exception.html" title="A base class for all pcl exceptions which inherits from std::runtime_error">PCLException</a></td><td>if file extension is not ".oct_idx" </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;      : <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a>()</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;      , <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a371cfa9f74bc5c39baa2e84896e5198a">read_write_mutex_</a> ()</div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160;      , metadata_ (<span class="keyword">new</span> OutofcoreOctreeBaseMetadata ())</div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;      , sample_percent_ (0.125)</div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;      , lod_filter_ptr_ (<span class="keyword">new</span> <a class="code" href="classpcl_1_1_random_sample_3_01pcl_1_1_p_c_l_point_cloud2_01_4.html">pcl::RandomSample&lt;pcl::PCLPointCloud2&gt;</a> ())</div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;    {</div>
<div class="line"><a name="l00134"></a><span class="lineno">  134</span>&#160;      <span class="comment">//Create a new outofcore tree</span></div>
<div class="line"><a name="l00135"></a><span class="lineno">  135</span>&#160;      this-&gt;init (max_depth, min, max, root_node_name, coord_sys);</div>
<div class="line"><a name="l00136"></a><span class="lineno">  136</span>&#160;    }</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">成员函数说明</h2>
<a id="ab9949de562ff8a27b5f59ded5c66228f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ab9949de562ff8a27b5f59ded5c66228f">&#9670;&nbsp;</a></span>addDataToLeaf()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT , typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">boost::uint64_t <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::addDataToLeaf </td>
          <td>(</td>
          <td class="paramtype">const AlignedPointTVector &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Recursively add points to the tree </p>
<dl class="section note"><dt>注解</dt><dd>shared read_write_mutex lock occurs </dd></dl>
<div class="fragment"><div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    {</div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;      boost::unique_lock &lt; boost::shared_mutex &gt; lock (<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a371cfa9f74bc5c39baa2e84896e5198a">read_write_mutex_</a>);</div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160; </div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;      <span class="keyword">const</span> <span class="keywordtype">bool</span> _FORCE_BB_CHECK = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;      </div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;      uint64_t pt_added = <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a>-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#a70187347c2d0b3ebe1eb5822e6a1589c">addDataToLeaf</a> (p, _FORCE_BB_CHECK);</div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160; </div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;      assert (p.size () == pt_added);</div>
<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160; </div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160;      <span class="keywordflow">return</span> (pt_added);</div>
<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;    }</div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_node_html_a70187347c2d0b3ebe1eb5822e6a1589c"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#a70187347c2d0b3ebe1eb5822e6a1589c">pcl::outofcore::OutofcoreOctreeBaseNode::addDataToLeaf</a></div><div class="ttdeci">virtual boost::uint64_t addDataToLeaf(const AlignedPointTVector &amp;p, const bool skip_bb_check=true)</div><div class="ttdoc">add point to this node if we are a leaf, or find the leaf below us that is supposed to take the point</div><div class="ttdef"><b>Definition:</b> octree_base_node.hpp:356</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="ae45a9210229dff9276e79796147b941c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ae45a9210229dff9276e79796147b941c">&#9670;&nbsp;</a></span>addDataToLeaf_and_genLOD()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT , typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">boost::uint64_t <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::addDataToLeaf_and_genLOD </td>
          <td>(</td>
          <td class="paramtype">AlignedPointTVector &amp;&#160;</td>
          <td class="paramname"><em>p</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Recursively add points to the tree subsampling LODs on the way. </p>
<p>shared read_write_mutex lock occurs </p>
<div class="fragment"><div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160;    {</div>
<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;      <span class="comment">// Lock the tree while writing</span></div>
<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160;      boost::unique_lock &lt; boost::shared_mutex &gt; lock (<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a371cfa9f74bc5c39baa2e84896e5198a">read_write_mutex_</a>);</div>
<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;      boost::uint64_t pt_added = <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a>-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#a9e8966b1865d07a00f730beebe6a9ef9">addDataToLeaf_and_genLOD</a> (src, <span class="keyword">false</span>);</div>
<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;      <span class="keywordflow">return</span> (pt_added);</div>
<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;    }</div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_node_html_a9e8966b1865d07a00f730beebe6a9ef9"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#a9e8966b1865d07a00f730beebe6a9ef9">pcl::outofcore::OutofcoreOctreeBaseNode::addDataToLeaf_and_genLOD</a></div><div class="ttdeci">virtual boost::uint64_t addDataToLeaf_and_genLOD(const AlignedPointTVector &amp;p, const bool skip_bb_check)</div><div class="ttdoc">Recursively add points to the leaf and children subsampling LODs on the way down.</div><div class="ttdef"><b>Definition:</b> octree_base_node.hpp:820</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a9111fda6d22e8c21766b42facaca2d63"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a9111fda6d22e8c21766b42facaca2d63">&#9670;&nbsp;</a></span>addPointCloud() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT , typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">boost::uint64_t <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::addPointCloud </td>
          <td>(</td>
          <td class="paramtype">pcl::PCLPointCloud2::Ptr &amp;&#160;</td>
          <td class="paramname"><em>input_cloud</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const bool&#160;</td>
          <td class="paramname"><em>skip_bb_check</em> = <code>false</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Recursively copies points from input_cloud into the leaf nodes of the out-of-core octree, and stores them to disk. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">input_cloud</td><td>The cloud of points to be inserted into the out-of-core octree. Note if multiple <a class="el" href="structpcl_1_1_p_c_l_point_cloud2.html">PCLPointCloud2</a> objects are added to the tree, this assumes that they all have exactly the same fields. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">skip_bb_check</td><td>(default=false) whether to skip the bounding box check on insertion. Note the bounding box check is never skipped in the current implementation. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>Number of poitns successfully copied from the point cloud to the octree </dd></dl>
<div class="fragment"><div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160;    {</div>
<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;      uint64_t pt_added = this-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a>-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#a068a8bf6a12ed5eb451d6a1ef17f07c2">addPointCloud</a> (input_cloud, skip_bb_check) ;</div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;<span class="comment">//      assert (input_cloud-&gt;width*input_cloud-&gt;height == pt_added);</span></div>
<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;      <span class="keywordflow">return</span> (pt_added);</div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    }</div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_node_html_a068a8bf6a12ed5eb451d6a1ef17f07c2"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#a068a8bf6a12ed5eb451d6a1ef17f07c2">pcl::outofcore::OutofcoreOctreeBaseNode::addPointCloud</a></div><div class="ttdeci">virtual boost::uint64_t addPointCloud(const pcl::PCLPointCloud2::Ptr &amp;input_cloud, const bool skip_bb_check=false)</div><div class="ttdoc">Add a single PCLPointCloud2 object into the octree.</div><div class="ttdef"><b>Definition:</b> octree_base_node.hpp:508</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="af9935cc37d3d7a446d73ab14636b5496"></a>
<h2 class="memtitle"><span class="permalink"><a href="#af9935cc37d3d7a446d73ab14636b5496">&#9670;&nbsp;</a></span>addPointCloud() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT , typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">boost::uint64_t <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::addPointCloud </td>
          <td>(</td>
          <td class="paramtype">PointCloudConstPtr&#160;</td>
          <td class="paramname"><em>point_cloud</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Copies the points from the point_cloud falling within the bounding box of the octree to the out-of-core octree; this is an interface to addDataToLeaf and can be used multiple times. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">point_cloud</td><td>Pointer to the point cloud data to copy to the outofcore octree; Assumes templated PointT matches for each. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>Number of points successfully copied from the point cloud to the octree. </dd></dl>
<div class="fragment"><div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    {</div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;      <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ab9949de562ff8a27b5f59ded5c66228f">addDataToLeaf</a> (point_cloud-&gt;points));</div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;    }</div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_ab9949de562ff8a27b5f59ded5c66228f"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#ab9949de562ff8a27b5f59ded5c66228f">pcl::outofcore::OutofcoreOctreeBase::addDataToLeaf</a></div><div class="ttdeci">boost::uint64_t addDataToLeaf(const AlignedPointTVector &amp;p)</div><div class="ttdoc">Recursively add points to the tree</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:208</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="aa529ccd903769b78d419ea8c12a62b93"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aa529ccd903769b78d419ea8c12a62b93">&#9670;&nbsp;</a></span>addPointCloud_and_genLOD()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT , typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">boost::uint64_t <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::addPointCloud_and_genLOD </td>
          <td>(</td>
          <td class="paramtype">pcl::PCLPointCloud2::Ptr &amp;&#160;</td>
          <td class="paramname"><em>input_cloud</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Recursively add points to the tree. </p>
<p>Recursively add points to the tree. 1/8 of the remaining points at each LOD are stored at each internal node of the octree until either (a) runs out of points, in which case the leaf is not at the maximum depth of the tree, or (b) a larger set of points falls in the leaf at the maximum depth. Note unlike the old implementation, multiple copies of the same point will <b>not</b> be added at multiple LODs as it walks the tree. Once the point is added to the octree, it is no longer propagated further down the tree.</p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">input_cloud</td><td>The input cloud of points which will be copied into the sorted nodes of the out-of-core octree </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>The total number of points added to the out-of-core octree. </dd></dl>
<div class="fragment"><div class="line"><a name="l00255"></a><span class="lineno">  255</span>&#160;    {</div>
<div class="line"><a name="l00256"></a><span class="lineno">  256</span>&#160;      <span class="comment">// Lock the tree while writing</span></div>
<div class="line"><a name="l00257"></a><span class="lineno">  257</span>&#160;      boost::unique_lock &lt; boost::shared_mutex &gt; lock (<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a371cfa9f74bc5c39baa2e84896e5198a">read_write_mutex_</a>);</div>
<div class="line"><a name="l00258"></a><span class="lineno">  258</span>&#160;      boost::uint64_t pt_added = <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a>-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#abd2f9dcfd8b297859ef0c01f0cd91153">addPointCloud_and_genLOD</a> (input_cloud);</div>
<div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;      </div>
<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;      PCL_DEBUG (<span class="stringliteral">&quot;[pcl::outofcore::OutofcoreOctreeBase::%s] Points added %lu, points in input cloud, %lu\n&quot;</span>,__FUNCTION__, pt_added, input_cloud-&gt;width*input_cloud-&gt;height );</div>
<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160; </div>
<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;      assert ( input_cloud-&gt;width*input_cloud-&gt;height == pt_added );</div>
<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160; </div>
<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;      <span class="keywordflow">return</span> (pt_added);</div>
<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;    }</div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_node_html_abd2f9dcfd8b297859ef0c01f0cd91153"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#abd2f9dcfd8b297859ef0c01f0cd91153">pcl::outofcore::OutofcoreOctreeBaseNode::addPointCloud_and_genLOD</a></div><div class="ttdeci">virtual boost::uint64_t addPointCloud_and_genLOD(const pcl::PCLPointCloud2::Ptr input_cloud)</div><div class="ttdoc">Add a single PCLPointCloud2 into the octree and build the subsampled LOD during construction; this me...</div><div class="ttdef"><b>Definition:</b> octree_base_node.hpp:720</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a7ff969ea904c00109ed88879bde8d83c"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7ff969ea904c00109ed88879bde8d83c">&#9670;&nbsp;</a></span>checkExtension()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT , typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::checkExtension </td>
          <td>(</td>
          <td class="paramtype">const boost::filesystem::path &amp;&#160;</td>
          <td class="paramname"><em>path_name</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Auxiliary function to validate path_name extension is .octree </p>
<dl class="section return"><dt>返回</dt><dd>0 if bad; 1 if extension is .oct_idx </dd></dl>
<div class="fragment"><div class="line"><a name="l00699"></a><span class="lineno">  699</span>&#160;    {</div>
<div class="line"><a name="l00700"></a><span class="lineno">  700</span>&#160;      <span class="keywordflow">if</span> (boost::filesystem::extension (path_name) != OutofcoreOctreeBaseNode&lt;ContainerT, PointT&gt;::node_index_extension)</div>
<div class="line"><a name="l00701"></a><span class="lineno">  701</span>&#160;      {</div>
<div class="line"><a name="l00702"></a><span class="lineno">  702</span>&#160;        PCL_ERROR ( <span class="stringliteral">&quot;[pcl::outofcore::OutofcoreOctreeBase] Wrong root node file extension: %s. The tree must have a root node ending in %s\n&quot;</span>, boost::filesystem::extension (path_name).c_str (), OutofcoreOctreeBaseNode&lt;ContainerT, PointT&gt;::node_index_extension.c_str () );</div>
<div class="line"><a name="l00703"></a><span class="lineno">  703</span>&#160;        <span class="keywordflow">return</span> (0);</div>
<div class="line"><a name="l00704"></a><span class="lineno">  704</span>&#160;      }</div>
<div class="line"><a name="l00705"></a><span class="lineno">  705</span>&#160; </div>
<div class="line"><a name="l00706"></a><span class="lineno">  706</span>&#160;      <span class="keywordflow">return</span> (1);</div>
<div class="line"><a name="l00707"></a><span class="lineno">  707</span>&#160;    }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a010534fb915cc90f68375bc4bc49ce51"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a010534fb915cc90f68375bc4bc49ce51">&#9670;&nbsp;</a></span>DeAllocEmptyNodeCache()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT , typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::DeAllocEmptyNodeCache</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>DEPRECATED - Flush empty nodes only </p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000003">弃用:</a></b></dt><dd></dd></dl>
<div class="fragment"><div class="line"><a name="l00471"></a><span class="lineno">  471</span>&#160;    {</div>
<div class="line"><a name="l00472"></a><span class="lineno">  472</span>&#160;      <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a010534fb915cc90f68375bc4bc49ce51">DeAllocEmptyNodeCache</a> (<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a>);</div>
<div class="line"><a name="l00473"></a><span class="lineno">  473</span>&#160;    }</div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a010534fb915cc90f68375bc4bc49ce51"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a010534fb915cc90f68375bc4bc49ce51">pcl::outofcore::OutofcoreOctreeBase::DeAllocEmptyNodeCache</a></div><div class="ttdeci">void DeAllocEmptyNodeCache()</div><div class="ttdoc">DEPRECATED - Flush empty nodes only</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:470</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a96b5cd1cd503b45587ace58f25261d66"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a96b5cd1cd503b45587ace58f25261d66">&#9670;&nbsp;</a></span>flushToDisk()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT , typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::flushToDisk</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>DEPRECATED - Flush all nodes' cache </p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000001">弃用:</a></b></dt><dd>this was moved to the octree_node class </dd></dl>
<div class="fragment"><div class="line"><a name="l00446"></a><span class="lineno">  446</span>&#160;    {</div>
<div class="line"><a name="l00447"></a><span class="lineno">  447</span>&#160;      <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a>-&gt;flushToDisk ();</div>
<div class="line"><a name="l00448"></a><span class="lineno">  448</span>&#160;    }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a775eca5a56a0386a96a34f6ca11b1b04"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a775eca5a56a0386a96a34f6ca11b1b04">&#9670;&nbsp;</a></span>flushToDiskLazy()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT , typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::flushToDiskLazy</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>DEPRECATED - Flush all non leaf nodes' cache </p>
<dl class="deprecated"><dt><b><a class="el" href="deprecated.html#_deprecated000002">弃用:</a></b></dt><dd></dd></dl>
<div class="fragment"><div class="line"><a name="l00454"></a><span class="lineno">  454</span>&#160;    {</div>
<div class="line"><a name="l00455"></a><span class="lineno">  455</span>&#160;      <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a>-&gt;flushToDiskLazy ();</div>
<div class="line"><a name="l00456"></a><span class="lineno">  456</span>&#160;    }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a6fc174b7881c9398c29c3f475c8f859d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a6fc174b7881c9398c29c3f475c8f859d">&#9670;&nbsp;</a></span>getBoundingBox()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT , typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::getBoundingBox </td>
          <td>(</td>
          <td class="paramtype">Eigen::Vector3d &amp;&#160;</td>
          <td class="paramname"><em>min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">Eigen::Vector3d &amp;&#160;</td>
          <td class="paramname"><em>max</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get the overall bounding box of the outofcore octree; this is the same as the bounding box of the <code>root_node_</code> node </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramname">min</td><td></td></tr>
    <tr><td class="paramname">max</td><td></td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;    {</div>
<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;      <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a>!= NULL)</div>
<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;      {</div>
<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a>-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#a02626db7622e8b8734750987ec66f973">getBoundingBox</a> (min, max);</div>
<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;        <span class="keywordflow">return</span> <span class="keyword">true</span>;</div>
<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;      }</div>
<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;      <span class="keywordflow">return</span> <span class="keyword">false</span>;</div>
<div class="line"><a name="l00370"></a><span class="lineno">  370</span>&#160;    }</div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_node_html_a02626db7622e8b8734750987ec66f973"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#a02626db7622e8b8734750987ec66f973">pcl::outofcore::OutofcoreOctreeBaseNode::getBoundingBox</a></div><div class="ttdeci">virtual void getBoundingBox(Eigen::Vector3d &amp;min_bb, Eigen::Vector3d &amp;max_bb) const</div><div class="ttdoc">gets the minimum and maximum corner of the bounding box represented by this node</div><div class="ttdef"><b>Definition:</b> octree_base_node.h:137</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a476f3c09a27835491ee41343d164a7a3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a476f3c09a27835491ee41343d164a7a3">&#9670;&nbsp;</a></span>getNumPointsAtDepth()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT  = OutofcoreOctreeDiskContainer&lt;pcl::PointXYZ&gt;, typename PointT  = pcl::PointXYZ&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">boost::uint64_t <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::getNumPointsAtDepth </td>
          <td>(</td>
          <td class="paramtype">const boost::uint64_t &amp;&#160;</td>
          <td class="paramname"><em>depth_index</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get number of points at specified LOD </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">depth_index</td><td>the level of detail at which we want the number of points (0 is root, 1, 2,...) </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>number of points in the tree at <b>depth</b> </dd></dl>
<div class="fragment"><div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;        {</div>
<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;          <span class="keywordflow">return</span> (metadata_-&gt;getLODPoints (depth_index));</div>
<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a548be9c74c1c6f514c02d560893f94a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a548be9c74c1c6f514c02d560893f94a5">&#9670;&nbsp;</a></span>getNumPointsVector()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT  = OutofcoreOctreeDiskContainer&lt;pcl::PointXYZ&gt;, typename PointT  = pcl::PointXYZ&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const std::vector&lt;boost::uint64_t&gt;&amp; <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::getNumPointsVector </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Get number of points at each LOD </p>
<dl class="section return"><dt>返回</dt><dd>vector of number of points in each LOD indexed by each level of depth, 0 to the depth of the tree. </dd></dl>
<div class="fragment"><div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;        {</div>
<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;          <span class="keywordflow">return</span> (metadata_-&gt;getLODPoints ());</div>
<div class="line"><a name="l00429"></a><span class="lineno">  429</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a77fd4203868a748bf8671cba4b328297"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a77fd4203868a748bf8671cba4b328297">&#9670;&nbsp;</a></span>getOccupiedVoxelCenters() <span class="overload">[1/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT , typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::getOccupiedVoxelCenters </td>
          <td>(</td>
          <td class="paramtype">AlignedPointTVector &amp;&#160;</td>
          <td class="paramname"><em>voxel_centers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>query_depth</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the voxel centers of all existing voxels at <code>query_depth</code> </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">voxel_centers</td><td>Vector of <a class="el" href="structpcl_1_1_point_x_y_z.html" title="A point structure representing Euclidean xyz coordinates. (SSE friendly)">PointXYZ</a> voxel centers for nodes that exist at that depth </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">query_depth</td><td>the depth of the tree at which to retrieve occupied/existing voxels </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;    {</div>
<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;      boost::shared_lock &lt; boost::shared_mutex &gt; lock (<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a371cfa9f74bc5c39baa2e84896e5198a">read_write_mutex_</a>);</div>
<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;      <span class="keywordflow">if</span> (query_depth &gt; metadata_-&gt;getDepth ()) </div>
<div class="line"><a name="l00388"></a><span class="lineno">  388</span>&#160;      {</div>
<div class="line"><a name="l00389"></a><span class="lineno">  389</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a>-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#a0f8d78b9eff5c1bda626056bc296fd22">getOccupiedVoxelCentersRecursive</a> (voxel_centers, metadata_-&gt;getDepth ());</div>
<div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;      }</div>
<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;      <span class="keywordflow">else</span></div>
<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;      {</div>
<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a>-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#a0f8d78b9eff5c1bda626056bc296fd22">getOccupiedVoxelCentersRecursive</a> (voxel_centers, query_depth);</div>
<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;      }</div>
<div class="line"><a name="l00395"></a><span class="lineno">  395</span>&#160;    }</div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_node_html_a0f8d78b9eff5c1bda626056bc296fd22"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#a0f8d78b9eff5c1bda626056bc296fd22">pcl::outofcore::OutofcoreOctreeBaseNode::getOccupiedVoxelCentersRecursive</a></div><div class="ttdeci">void getOccupiedVoxelCentersRecursive(AlignedPointTVector &amp;voxel_centers, const size_t query_depth)</div><div class="ttdoc">Gets a vector of occupied voxel centers</div><div class="ttdef"><b>Definition:</b> octree_base_node.hpp:986</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="aee6b0d199c7592c667ff52b877cb3546"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aee6b0d199c7592c667ff52b877cb3546">&#9670;&nbsp;</a></span>getOccupiedVoxelCenters() <span class="overload">[2/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT  = OutofcoreOctreeDiskContainer&lt;pcl::PointXYZ&gt;, typename PointT  = pcl::PointXYZ&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::getOccupiedVoxelCenters </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; Eigen::Vector3d, Eigen::aligned_allocator&lt; Eigen::Vector3d &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>voxel_centers</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns the voxel centers of all occupied/existing leaves of the tree </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">voxel_centers</td><td>std::vector of the centers of all occupied leaves of the octree </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00525"></a><span class="lineno">  525</span>&#160;        {</div>
<div class="line"><a name="l00526"></a><span class="lineno">  526</span>&#160;          <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a77fd4203868a748bf8671cba4b328297">getOccupiedVoxelCenters</a>(voxel_centers, metadata_-&gt;getDepth ());</div>
<div class="line"><a name="l00527"></a><span class="lineno">  527</span>&#160;        }</div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a77fd4203868a748bf8671cba4b328297"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a77fd4203868a748bf8671cba4b328297">pcl::outofcore::OutofcoreOctreeBase::getOccupiedVoxelCenters</a></div><div class="ttdeci">void getOccupiedVoxelCenters(AlignedPointTVector &amp;voxel_centers, size_t query_depth) const</div><div class="ttdoc">Returns the voxel centers of all existing voxels at query_depth</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:384</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a502807c3d76874c2d3b990a810a6ec32"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a502807c3d76874c2d3b990a810a6ec32">&#9670;&nbsp;</a></span>getOccupiedVoxelCenters() <span class="overload">[3/3]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT , typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::getOccupiedVoxelCenters </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; Eigen::Vector3d, Eigen::aligned_allocator&lt; Eigen::Vector3d &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>voxel_centers</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">size_t&#160;</td>
          <td class="paramname"><em>query_depth</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns the voxel centers of all existing voxels at <code>query_depth</code> </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">voxel_centers</td><td>Vector of <a class="el" href="structpcl_1_1_point_x_y_z.html" title="A point structure representing Euclidean xyz coordinates. (SSE friendly)">PointXYZ</a> voxel centers for nodes that exist at that depth </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">query_depth</td><td>the depth of the tree at which to retrieve occupied/existing voxels </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00401"></a><span class="lineno">  401</span>&#160;    {</div>
<div class="line"><a name="l00402"></a><span class="lineno">  402</span>&#160;      boost::shared_lock &lt; boost::shared_mutex &gt; lock (<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a371cfa9f74bc5c39baa2e84896e5198a">read_write_mutex_</a>);</div>
<div class="line"><a name="l00403"></a><span class="lineno">  403</span>&#160;      <span class="keywordflow">if</span> (query_depth &gt; metadata_-&gt;getDepth ())</div>
<div class="line"><a name="l00404"></a><span class="lineno">  404</span>&#160;      {</div>
<div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a>-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#a0f8d78b9eff5c1bda626056bc296fd22">getOccupiedVoxelCentersRecursive</a> (voxel_centers, metadata_-&gt;getDepth ());</div>
<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;      }</div>
<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;      <span class="keywordflow">else</span></div>
<div class="line"><a name="l00408"></a><span class="lineno">  408</span>&#160;      {</div>
<div class="line"><a name="l00409"></a><span class="lineno">  409</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a>-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#a0f8d78b9eff5c1bda626056bc296fd22">getOccupiedVoxelCentersRecursive</a> (voxel_centers, query_depth);</div>
<div class="line"><a name="l00410"></a><span class="lineno">  410</span>&#160;      }</div>
<div class="line"><a name="l00411"></a><span class="lineno">  411</span>&#160;    }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a7503db4c6b543960b5de57d545cdb9fa"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a7503db4c6b543960b5de57d545cdb9fa">&#9670;&nbsp;</a></span>getVoxelSideLength() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT  = OutofcoreOctreeDiskContainer&lt;pcl::PointXYZ&gt;, typename PointT  = pcl::PointXYZ&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::getVoxelSideLength </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gets the smallest (assumed) cubic voxel side lengths. The smallest voxels are located at the max depth of the tree. </p>
<dl class="section return"><dt>返回</dt><dd>The side length of a the cubic voxel located at the leaves </dd></dl>
<div class="fragment"><div class="line"><a name="l00462"></a><span class="lineno">  462</span>&#160;        {</div>
<div class="line"><a name="l00463"></a><span class="lineno">  463</span>&#160;          <span class="keywordflow">return</span> (this-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a7503db4c6b543960b5de57d545cdb9fa">getVoxelSideLength</a> (metadata_-&gt;getDepth ()));</div>
<div class="line"><a name="l00464"></a><span class="lineno">  464</span>&#160;        }</div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a7503db4c6b543960b5de57d545cdb9fa"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a7503db4c6b543960b5de57d545cdb9fa">pcl::outofcore::OutofcoreOctreeBase::getVoxelSideLength</a></div><div class="ttdeci">double getVoxelSideLength() const</div><div class="ttdoc">Gets the smallest (assumed) cubic voxel side lengths. The smallest voxels are located at the max dept...</div><div class="ttdef"><b>Definition:</b> octree_base.h:461</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a45bad619558c5662ebca68331b941c5d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a45bad619558c5662ebca68331b941c5d">&#9670;&nbsp;</a></span>getVoxelSideLength() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT , typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::getVoxelSideLength </td>
          <td>(</td>
          <td class="paramtype">const boost::uint64_t &amp;&#160;</td>
          <td class="paramname"><em>depth</em></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>gets the side length of an (assumed) perfect cubic voxel. </p>
<dl class="section note"><dt>注解</dt><dd>If the initial bounding box specified in constructing the octree is not square, then this method does not return a sensible value </dd></dl>
<dl class="section return"><dt>返回</dt><dd>the side length of the cubic voxel size at the specified depth </dd></dl>
<div class="fragment"><div class="line"><a name="l00550"></a><span class="lineno">  550</span>&#160;    {</div>
<div class="line"><a name="l00551"></a><span class="lineno">  551</span>&#160;      Eigen::Vector3d min, max;</div>
<div class="line"><a name="l00552"></a><span class="lineno">  552</span>&#160;      this-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a6fc174b7881c9398c29c3f475c8f859d">getBoundingBox</a> (min, max);</div>
<div class="line"><a name="l00553"></a><span class="lineno">  553</span>&#160;      <span class="keywordtype">double</span> result = (max[0] - min[0]) * pow (.5, <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span> (metadata_-&gt;getDepth ())) * <span class="keyword">static_cast&lt;</span><span class="keywordtype">double</span><span class="keyword">&gt;</span> (1 &lt;&lt; (metadata_-&gt;getDepth () - depth));</div>
<div class="line"><a name="l00554"></a><span class="lineno">  554</span>&#160;      <span class="keywordflow">return</span> (result);</div>
<div class="line"><a name="l00555"></a><span class="lineno">  555</span>&#160;    }</div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_html_a6fc174b7881c9398c29c3f475c8f859d"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a6fc174b7881c9398c29c3f475c8f859d">pcl::outofcore::OutofcoreOctreeBase::getBoundingBox</a></div><div class="ttdeci">bool getBoundingBox(Eigen::Vector3d &amp;min, Eigen::Vector3d &amp;max) const</div><div class="ttdoc">Get the overall bounding box of the outofcore octree; this is the same as the bounding box of the roo...</div><div class="ttdef"><b>Definition:</b> octree_base.hpp:362</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a28a9432ba893f51f530216d0fb9493f0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a28a9432ba893f51f530216d0fb9493f0">&#9670;&nbsp;</a></span>queryBBIncludes() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT , typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::queryBBIncludes </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Vector3d &amp;&#160;</td>
          <td class="paramname"><em>min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector3d &amp;&#160;</td>
          <td class="paramname"><em>max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const boost::uint64_t&#160;</td>
          <td class="paramname"><em>query_depth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">AlignedPointTVector &amp;&#160;</td>
          <td class="paramname"><em>dst</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get Points in BB, only points inside BB. The query processes the data at each node, filtering points that fall out of the query bounds, and returns a single, concatenated point cloud. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">min</td><td>The minimum corner of the bounding box for querying </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">max</td><td>The maximum corner of the bounding box for querying </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">query_depth</td><td>The depth from which point data will be taken </td></tr>
  </table>
  </dd>
</dl>
<dl class="section note"><dt>注解</dt><dd>If the LODs of the tree have not been built, you must specify the maximum depth in order to retrieve any data </dd></dl>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">dst</td><td>The destination vector of points </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00314"></a><span class="lineno">  314</span>&#160;    {</div>
<div class="line"><a name="l00315"></a><span class="lineno">  315</span>&#160;      boost::shared_lock &lt; boost::shared_mutex &gt; lock (<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a371cfa9f74bc5c39baa2e84896e5198a">read_write_mutex_</a>);</div>
<div class="line"><a name="l00316"></a><span class="lineno">  316</span>&#160;      dst.clear ();</div>
<div class="line"><a name="l00317"></a><span class="lineno">  317</span>&#160;      PCL_DEBUG (<span class="stringliteral">&quot;[pcl::outofcore::OutofcoreOctreeBaseNode] Querying Bounding Box %.2lf %.2lf %.2lf, %.2lf %.2lf %.2lf&quot;</span>, min[0], min[1], min[2], max[0], max[1], max[2]);</div>
<div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;      <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a>-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#acdacc92401e3bfc72b659894bfafb68f">queryBBIncludes</a> (min, max, query_depth, dst);</div>
<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;    }</div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_node_html_acdacc92401e3bfc72b659894bfafb68f"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#acdacc92401e3bfc72b659894bfafb68f">pcl::outofcore::OutofcoreOctreeBaseNode::queryBBIncludes</a></div><div class="ttdeci">virtual void queryBBIncludes(const Eigen::Vector3d &amp;min_bb, const Eigen::Vector3d &amp;max_bb, size_t query_depth, AlignedPointTVector &amp;dst)</div><div class="ttdoc">Recursively add points that fall into the queried bounding box up to the query_depth</div><div class="ttdef"><b>Definition:</b> octree_base_node.hpp:1517</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a38d9c6517985a17992b4e7c357a19602"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a38d9c6517985a17992b4e7c357a19602">&#9670;&nbsp;</a></span>queryBBIncludes() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT , typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::queryBBIncludes </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Vector3d &amp;&#160;</td>
          <td class="paramname"><em>min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector3d &amp;&#160;</td>
          <td class="paramname"><em>max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const boost::uint64_t&#160;</td>
          <td class="paramname"><em>query_depth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const pcl::PCLPointCloud2::Ptr &amp;&#160;</td>
          <td class="paramname"><em>dst_blob</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Query all points falling within the input bounding box at <code>query_depth</code> and return a <a class="el" href="structpcl_1_1_p_c_l_point_cloud2.html">PCLPointCloud2</a> object in <code>dst_blob</code>. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">min</td><td>The minimum corner of the input bounding box. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">max</td><td>The maximum corner of the input bounding box. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">query_depth</td><td>The query depth at which to search for points; only points at this depth are returned </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">dst_blob</td><td>Storage location for the points satisfying the query. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00325"></a><span class="lineno">  325</span>&#160;    {</div>
<div class="line"><a name="l00326"></a><span class="lineno">  326</span>&#160;      boost::shared_lock &lt; boost::shared_mutex &gt; lock (<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a371cfa9f74bc5c39baa2e84896e5198a">read_write_mutex_</a>);</div>
<div class="line"><a name="l00327"></a><span class="lineno">  327</span>&#160; </div>
<div class="line"><a name="l00328"></a><span class="lineno">  328</span>&#160;      dst_blob-&gt;data.clear ();</div>
<div class="line"><a name="l00329"></a><span class="lineno">  329</span>&#160;      dst_blob-&gt;width = 0;</div>
<div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;      dst_blob-&gt;height =1;</div>
<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160; </div>
<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;      <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a>-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#acdacc92401e3bfc72b659894bfafb68f">queryBBIncludes</a> ( min, max, query_depth, dst_blob );</div>
<div class="line"><a name="l00333"></a><span class="lineno">  333</span>&#160;    }</div>
</div><!-- fragment -->
</div>
</div>
<a id="aaf494098c2abc44725cfe5e9210e2bf0"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aaf494098c2abc44725cfe5e9210e2bf0">&#9670;&nbsp;</a></span>queryBBIncludes_subsample()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT  = OutofcoreOctreeDiskContainer&lt;pcl::PointXYZ&gt;, typename PointT  = pcl::PointXYZ&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::queryBBIncludes_subsample </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Vector3d &amp;&#160;</td>
          <td class="paramname"><em>min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector3d &amp;&#160;</td>
          <td class="paramname"><em>max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">uint64_t&#160;</td>
          <td class="paramname"><em>query_depth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>percent</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">AlignedPointTVector &amp;&#160;</td>
          <td class="paramname"><em>dst</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Returns a random subsample of points within the given bounding box at <code>query_depth</code>. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">min</td><td>The minimum corner of the boudning box to query. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">max</td><td>The maximum corner of the bounding box to query. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">query_depth</td><td>The depth in the tree at which to look for the points. Only returns points within the given bounding box at the specified <code>query_depth</code>. </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">percent</td><td></td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">dst</td><td>The destination in which to return the points. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00339"></a><span class="lineno">  339</span>&#160;    {</div>
<div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;      boost::shared_lock &lt; boost::shared_mutex &gt; lock (<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a371cfa9f74bc5c39baa2e84896e5198a">read_write_mutex_</a>);</div>
<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;      dst.clear ();</div>
<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;      <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a>-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#ab6f84897e582d599020c1947eafe5500">queryBBIncludes_subsample</a> (min, max, query_depth, percent, dst);</div>
<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;    }</div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_node_html_ab6f84897e582d599020c1947eafe5500"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#ab6f84897e582d599020c1947eafe5500">pcl::outofcore::OutofcoreOctreeBaseNode::queryBBIncludes_subsample</a></div><div class="ttdeci">virtual void queryBBIncludes_subsample(const Eigen::Vector3d &amp;min_bb, const Eigen::Vector3d &amp;max_bb, boost::uint64_t query_depth, const double percent, AlignedPointTVector &amp;v)</div><div class="ttdoc">Recursively add points that fall into the queried bounding box up to the query_depth</div><div class="ttdef"><b>Definition:</b> octree_base_node.hpp:1658</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="add153493b87d05fe3056c915af660e09"></a>
<h2 class="memtitle"><span class="permalink"><a href="#add153493b87d05fe3056c915af660e09">&#9670;&nbsp;</a></span>queryBBIntersects()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT , typename PointT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::queryBBIntersects </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Vector3d &amp;&#160;</td>
          <td class="paramname"><em>min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector3d &amp;&#160;</td>
          <td class="paramname"><em>max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const boost::uint32_t&#160;</td>
          <td class="paramname"><em>query_depth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::list&lt; std::string &gt; &amp;&#160;</td>
          <td class="paramname"><em>bin_name</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Get a list of file paths at query_depth that intersect with your bounding box specified by <code>min</code> and <code>max</code>. When querying with this method, you may be stuck with extra data (some outside of your query bounds) that reside in the files. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">min</td><td>The minimum corner of the bounding box </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">max</td><td>The maximum corner of the bounding box </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">query_depth</td><td>0 is root, (this-&gt;depth) is full </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">bin_name</td><td>List of paths to point data files (PCD currently) which satisfy the query </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00417"></a><span class="lineno">  417</span>&#160;    {</div>
<div class="line"><a name="l00418"></a><span class="lineno">  418</span>&#160;      boost::shared_lock &lt; boost::shared_mutex &gt; lock (<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a371cfa9f74bc5c39baa2e84896e5198a">read_write_mutex_</a>);</div>
<div class="line"><a name="l00419"></a><span class="lineno">  419</span>&#160;      bin_name.clear ();</div>
<div class="line"><a name="l00420"></a><span class="lineno">  420</span>&#160;<span class="preprocessor">#if defined _MSC_VER</span></div>
<div class="line"><a name="l00421"></a><span class="lineno">  421</span>&#160;<span class="preprocessor">  #pragma warning(push)</span></div>
<div class="line"><a name="l00422"></a><span class="lineno">  422</span>&#160;<span class="preprocessor">  #pragma warning(disable : 4267)</span></div>
<div class="line"><a name="l00423"></a><span class="lineno">  423</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00424"></a><span class="lineno">  424</span>&#160;      <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a>-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#a30cabf53c79e7ced285f6071c0a0e4f4">queryBBIntersects</a> (min, max, query_depth, bin_name);</div>
<div class="line"><a name="l00425"></a><span class="lineno">  425</span>&#160;<span class="preprocessor">#if defined _MSC_VER</span></div>
<div class="line"><a name="l00426"></a><span class="lineno">  426</span>&#160;<span class="preprocessor">  #pragma warning(pop)</span></div>
<div class="line"><a name="l00427"></a><span class="lineno">  427</span>&#160;<span class="preprocessor">#endif</span></div>
<div class="line"><a name="l00428"></a><span class="lineno">  428</span>&#160;    }</div>
<div class="ttc" id="aclasspcl_1_1outofcore_1_1_outofcore_octree_base_node_html_a30cabf53c79e7ced285f6071c0a0e4f4"><div class="ttname"><a href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#a30cabf53c79e7ced285f6071c0a0e4f4">pcl::outofcore::OutofcoreOctreeBaseNode::queryBBIntersects</a></div><div class="ttdeci">virtual void queryBBIntersects(const Eigen::Vector3d &amp;min_bb, const Eigen::Vector3d &amp;max_bb, const boost::uint32_t query_depth, std::list&lt; std::string &gt; &amp;file_names)</div><div class="ttdoc">Recursive acquires PCD paths to any node with which the queried bounding box intersects (at query_dep...</div><div class="ttdef"><b>Definition:</b> octree_base_node.hpp:1353</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a78e22dfa93a11f383e9bf878801f17c7"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a78e22dfa93a11f383e9bf878801f17c7">&#9670;&nbsp;</a></span>queryBoundingBox() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT , typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::queryBoundingBox </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Vector3d &amp;&#160;</td>
          <td class="paramname"><em>min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector3d &amp;&#160;</td>
          <td class="paramname"><em>max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>query_depth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const pcl::PCLPointCloud2::Ptr &amp;&#160;</td>
          <td class="paramname"><em>dst_blob</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>percent</em> = <code>1.0</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Query all points falling within the input bounding box at <code>query_depth</code> and return a <a class="el" href="structpcl_1_1_p_c_l_point_cloud2.html">PCLPointCloud2</a> object in <code>dst_blob</code>. If the optional argument for filter is given, points are processed by that filter before returning. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">min</td><td>The minimum corner of the input bounding box. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">max</td><td>The maximum corner of the input bounding box. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">query_depth</td><td>The depth of tree at which to query; only points at this depth are returned </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">dst_blob</td><td>The destination in which points within the bounding box are stored. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">percent</td><td>optional sampling percentage which is applied after each time data are read from disk </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;    {</div>
<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;      <span class="keywordflow">if</span> (percent==1.0)</div>
<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;      {</div>
<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a>-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#acdacc92401e3bfc72b659894bfafb68f">queryBBIncludes</a> (min, max, query_depth, dst_blob);</div>
<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;      }</div>
<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;      <span class="keywordflow">else</span></div>
<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;      {</div>
<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160;        <a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a>-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#ab6f84897e582d599020c1947eafe5500">queryBBIncludes_subsample</a> (min, max, query_depth, dst_blob, percent);</div>
<div class="line"><a name="l00356"></a><span class="lineno">  356</span>&#160;      }</div>
<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;    }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a0fb902b66afb9706cf028f52b690296e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0fb902b66afb9706cf028f52b690296e">&#9670;&nbsp;</a></span>queryBoundingBox() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT  = OutofcoreOctreeDiskContainer&lt;pcl::PointXYZ&gt;, typename PointT  = pcl::PointXYZ&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">virtual void <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::queryBoundingBox </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Vector3d &amp;&#160;</td>
          <td class="paramname"><em>min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector3d &amp;&#160;</td>
          <td class="paramname"><em>max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>query_depth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::list&lt; std::string &gt; &amp;&#160;</td>
          <td class="paramname"><em>filenames</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Returns list of pcd files from nodes whose bounding boxes intersect with the input bounding box. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">min</td><td>The minimum corner of the input bounding box. </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">max</td><td>The maximum corner of the input bounding box. </td></tr>
    <tr><td class="paramdir"></td><td class="paramname">query_depth</td><td></td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">filenames</td><td>The list of paths to the PCD files which can be loaded and processed. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00383"></a><span class="lineno">  383</span>&#160;        {</div>
<div class="line"><a name="l00384"></a><span class="lineno">  384</span>&#160;          boost::shared_lock &lt; boost::shared_mutex &gt; lock (<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#a371cfa9f74bc5c39baa2e84896e5198a">read_write_mutex_</a>);</div>
<div class="line"><a name="l00385"></a><span class="lineno">  385</span>&#160;          filenames.clear ();</div>
<div class="line"><a name="l00386"></a><span class="lineno">  386</span>&#160;          this-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html#aeb7b74e9982817c45349b4bfdc951b69">root_node_</a>-&gt;<a class="code" href="classpcl_1_1outofcore_1_1_outofcore_octree_base_node.html#a30cabf53c79e7ced285f6071c0a0e4f4">queryBBIntersects</a> (min, max, query_depth, filenames);</div>
<div class="line"><a name="l00387"></a><span class="lineno">  387</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a869371c4f7867438093f010d140e7610"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a869371c4f7867438093f010d140e7610">&#9670;&nbsp;</a></span>queryBoundingBoxNumPoints()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT  = OutofcoreOctreeDiskContainer&lt;pcl::PointXYZ&gt;, typename PointT  = pcl::PointXYZ&gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">boost::uint64_t <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::queryBoundingBoxNumPoints </td>
          <td>(</td>
          <td class="paramtype">const Eigen::Vector3d &amp;&#160;</td>
          <td class="paramname"><em>min</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const Eigen::Vector3d &amp;&#160;</td>
          <td class="paramname"><em>max</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">const int&#160;</td>
          <td class="paramname"><em>query_depth</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>load_from_disk</em> = <code>true</code>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Queries the number of points in a bounding box </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">min</td><td>The minimum corner of the input bounding box </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">max</td><td>The maximum corner of the input bounding box </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">query_depth</td><td>The depth of the nodes to restrict the search to (only this depth is searched) </td></tr>
    <tr><td class="paramdir">[in]</td><td class="paramname">load_from_disk</td><td>(default true) Whether to load PCD files to count exactly the number of points within the bounding box; setting this to false will return an upper bound by just reading the number of points from the PCD header, even if there may be some points in that node do not fall within the query bounding box. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>Number of points in the bounding box at depth <b>query_depth</b> </dd></dl>

</div>
</div>
<a id="ad252ba0d14389fc15ebbb1325c478598"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ad252ba0d14389fc15ebbb1325c478598">&#9670;&nbsp;</a></span>setSamplePercent()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT  = OutofcoreOctreeDiskContainer&lt;pcl::PointXYZ&gt;, typename PointT  = pcl::PointXYZ&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::setSamplePercent </td>
          <td>(</td>
          <td class="paramtype">const double&#160;</td>
          <td class="paramname"><em>sample_percent_arg</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sets the sampling percent for constructing LODs. Each LOD gets sample_percent^d points. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">sample_percent_arg</td><td>Percentage between 0 and 1. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00565"></a><span class="lineno">  565</span>&#160;        {</div>
<div class="line"><a name="l00566"></a><span class="lineno">  566</span>&#160;          this-&gt;sample_percent_ = std::fabs (sample_percent_arg) &gt; 1.0 ? 1.0 : std::fabs (sample_percent_arg);</div>
<div class="line"><a name="l00567"></a><span class="lineno">  567</span>&#160;        }</div>
</div><!-- fragment -->
</div>
</div>
<h2 class="groupheader">类成员变量说明</h2>
<a id="aac1a5fb289f9bac470d291f8632e412d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#aac1a5fb289f9bac470d291f8632e412d">&#9670;&nbsp;</a></span>TREE_EXTENSION_</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename ContainerT , typename PointT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">const std::string <a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">pcl::outofcore::OutofcoreOctreeBase</a>&lt; ContainerT, <a class="el" href="structpcl_1_1_point_x_y_z_r_g_b_a.html">PointT</a> &gt;::TREE_EXTENSION_ = &quot;.octree&quot;</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">static</span><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>defined as ".octree" to append to treepath files </p>
<dl class="section note"><dt>注解</dt><dd>this might change </dd></dl>

</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>outofcore/include/pcl/outofcore/<a class="el" href="outofcore_2include_2pcl_2outofcore_2octree__base_8h_source.html">octree_base.h</a></li>
<li>outofcore/include/pcl/outofcore/impl/<a class="el" href="outofcore_2include_2pcl_2outofcore_2impl_2octree__base_8hpp_source.html">octree_base.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>pcl</b></li><li class="navelem"><b>outofcore</b></li><li class="navelem"><a class="el" href="classpcl_1_1outofcore_1_1_outofcore_octree_base.html">OutofcoreOctreeBase</a></li>
    <li class="footer">制作者 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
